home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1415.txt < prev    next >
Text File  |  1994-08-01  |  128KB  |  3,252 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          J. Mindel
  8. Request for Comments: 1415                                     R. Slaski
  9.                                                      Open Networks, Inc.
  10.                                                             January 1993
  11.  
  12.  
  13.                      FTP-FTAM Gateway Specification
  14.  
  15. Status of the Memo
  16.  
  17.    This RFC specifies an IAB standards track protocol for the Internet
  18.    community, and requests discussion and suggestions for improvements.
  19.    Please refer to the current edition of the "IAB Official Protocol
  20.    Standards" for the standardization state and status of this protocol.
  21.    Distribution of this memo is unlimited.
  22.  
  23. Abstract
  24.  
  25.    This memo describes a dual protocol stack application layer gateway
  26.    that performs protocol translation, in an interactive environment,
  27.    between the FTP and FTAM file transfer protocols.
  28.  
  29.    Two key assumptions are made:  1) POSIX file naming conventions and
  30.    hierarchical organization, rather than proprietary conventions are in
  31.    use; and 2) X.500 Directory Services are available.
  32.  
  33. Acknowledgments
  34.  
  35.    The authors of this RFC would like to express their appreciation to
  36.    the individuals and organizations that participated in the
  37.    implementation of the FTP-FTAM Application Layer Gateway and its
  38.    fielding on the MILNET.  Implementation credits go to Mr. John Scott,
  39.    formerly of the MITRE Corporation, while fielding credits are
  40.    extended to James Graham and R. Greg Lavender of Open Networks, Inc.
  41.    (formerly NetWorks One) and Robert Cooney of the Naval Computer and
  42.    Telecommunications Station (NCTS) Washington.  Dr. Marshall Rose is
  43.    to be commended for recognizing the importance of the FTP-FTAM
  44.    gateway and promulgating it as a part of the ISO Development
  45.    Environment (ISODE).   The following individuals have provided
  46.    valuable editorial comments:  Larry Friedman, Donna Vincent and
  47.    Michael Resnick of Digital Equipment Corporation; Robert Cooney of
  48.    NCTS; and S.E. Hardcastle-Kille of University College London. Funding
  49.    of the FTP-FTAM Gateway Request for Comments effort was provided by
  50.    Open Networks Inc. and the Defense Information Systems Agency (DISA),
  51.    formerly the Defense Communications Agency.  DISA sponsors include
  52.    Len Tabacchi, George Bradshaw, Tom Clarke, and Betsy Turner.
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Mindel & Slaski                                                 [Page 1]
  59.  
  60. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  61.  
  62.  
  63. Table of Contents
  64.  
  65.    1.  Introduction..................................................2
  66.    1.1.   Relationship to Other Work ................................3
  67.    1.2.   Overview of Gateway Operation .............................4
  68.    2.  Gateway Architecture..........................................6
  69.    3.  Network Naming and Addressing.................................8
  70.    4.  Use of the Gateway Services...................................9
  71.    4.1.   FTP-Initiated Gateway Service .............................9
  72.    4.2.   FTAM-Initiated Gateway Service ...........................11
  73.    4.3.   Summary of Usage .........................................12
  74.    5.  Gateway State Variables and Transitions......................13
  75.    5.1.   FTP-Initiated Gateway Service ............................14
  76.    5.2.   FTAM-Initiated Gateway Service ...........................16
  77.    6.  Document Type Support........................................18
  78.    6.1.   Notes on NBS-9 ...........................................18
  79.    7.  Functional Comparison of FTP and FTAM........................19
  80.    7.1.   Loss of Functionality ....................................20
  81.    8. Mapping of Protocol Functions and Representations.............20
  82.    8.1.  FTP-Initiated Gateway Service .............................22
  83.    8.2.  FTAM-Initiated Gateway Service ............................38
  84.    9. Mapping between FTP Reply Codes and FTAM Parameters...........47
  85.    9.1.  FTP Reply Codes to FTAM Parameters ........................48
  86.    9.2.  FTAM Parameters to FTP Reply Codes ........................50
  87.    9.3.  Future Mapping Problem ....................................54
  88.    9.4.  Error Handling ............................................54
  89.    10. Implementation and Configuration Guidelines..................54
  90.    10.1.  Robustness ...............................................54
  91.    10.2.  Well-Known TCP/IP Port ...................................55
  92.    10.3.  Gateway Listener Processes ...............................55
  93.    10.4.  Implementation Testing ...................................55
  94.    10.5.  POSIX File Naming and Organization .......................55
  95.    11. Security Considerations......................................55
  96.    12. References...................................................56
  97.    13. Authors' Addresses...........................................58
  98.  
  99. 1. Introduction
  100.  
  101.    The TCP/IP and OSI protocol suites will coexist in the Internet
  102.    community for several years to come.  As more and more OSI hosts are
  103.    fielded on the Internet, the requirement for gateways between the two
  104.    protocol suites becomes more pressing.
  105.  
  106.    This specification describes an application layer gateway providing
  107.    interoperability between the TCP/IP File Transfer Protocol (FTP) and
  108.    the OSI File Transfer, Access, and Management (FTAM) protocol.  The
  109.    proposed application layer gateway is based on a bi-directional set
  110.    of mappings between the FTP and FTAM protocols.  Since the protocols
  111.  
  112.  
  113.  
  114. Mindel & Slaski                                                 [Page 2]
  115.  
  116. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  117.  
  118.  
  119.    have quite different command structures, the mappings between them
  120.    are not one-to-one.  This paper assumes knowledge of the File
  121.    Transfer Protocol (FTP) [RFC959] and the File Transfer, Access, and
  122.    Management Protocol (FTAM) [ISO8571-1,2,3,4,5].
  123.  
  124.    Two important goals of the mappings are to:
  125.  
  126.       Provide FTP users with as much emulated FTP capability on an
  127.       FTAM Responder as possible, and
  128.  
  129.       Provide FTAM users with as much emulated FTAM capability on an
  130.       FTP Server as possible.
  131.  
  132.    Though it is anticipated that the application layer gateway will be
  133.    implemented on full protocol suites of both TCP/IP and OSI, at least
  134.    one implementation of such a gateway (included in the ISO Development
  135.    Environment) can be configured to operate FTAM over either OSI or
  136.    TCP/IP lower-layer services.
  137.  
  138. 1.1. Relationship to Other Work
  139.  
  140.    Ideas presented in this specification are based on lessons learned in
  141.    fielding the gateway on the MILNET, operational at NCTS Washington
  142.    D.C. since 1989, and on the efforts of M. A. Wallace et al. of the
  143.    National Institute of Standards and Technology (NIST) [NIST86].  In
  144.    1986, NIST published a design document for an FTP-FTAM gateway.
  145.    Since that time, at least one implementation (for a subset of the FTP
  146.    and FTAM protocols) of the gateway has been developed [MITRE87] and
  147.    is included with the ISODE.  This implementation is based on the NIST
  148.    protocol translator gateway design [NIST86].
  149.  
  150.    This document's contribution to the advancement of the FTP-FTAM
  151.    gateway concept is to:
  152.  
  153.       *  Enhance the user interaction capability provided by the ISODE
  154.          implementation of the FTP-FTAM application layer gateway.
  155.  
  156.       *  Clarify and enhance the mappings (FTP to FTAM, FTAM to FTP)
  157.          documented by NIST.
  158.  
  159.       *  Provide guidelines for fielding the FTP-FTAM application layer
  160.          gateway on the Internet so that it is useful as an Internet
  161.          resource.
  162.  
  163.       *  Produce a formal specification for the FTP-FTAM gateway suitable
  164.          for implementors to use in building additional FTP-FTAM
  165.          gateways.
  166.  
  167.  
  168.  
  169.  
  170. Mindel & Slaski                                                 [Page 3]
  171.  
  172. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  173.  
  174.  
  175.       *  Provide a formal specification for organizations wishing to
  176.          procure FTP-FTAM gateways.
  177.  
  178. 1.2. Overview of Gateway Operation
  179.  
  180.    The gateway provides a virtual end-to-end application file transfer
  181.    service.  As data is sent via FTP, the gateway immediately maps the
  182.    requested function to FTAM and passes it to the FTAM host.  In a
  183.    similar fashion, but using a different set of mappings, an FTAM
  184.    request is sent to the gateway, immediately mapped to an FTP
  185.    function, and passed along to the FTP host.
  186.  
  187.    In FTP, the two parties involved in a file transfer are the Client
  188.    and Server.  The Client is responsible for initiating a connection to
  189.    the Server.  Once the connection is established, all service requests
  190.    originate from the Client.  The FTP-FTAM gateway does not support the
  191.    FTP three node model.
  192.  
  193.    In FTAM, the two parties involved in a file transfer are the
  194.    Initiator and Responder.  The Initiator is responsible for initiating
  195.    a connection to the Responder.  Once the connection is established,
  196.    either the Initiator or Responder may issue service requests to the
  197.    other.
  198.  
  199.    The FTP-FTAM gateway provides two sets of services:
  200.  
  201.         1. FTP-Initiated Gateway Services
  202.  
  203.            Utilized when an FTP Client contacts the FTP-FTAM gateway to
  204.            instigate a file transfer with an FTAM Responder.
  205.  
  206.         2. FTAM-Initiated Gateway Services
  207.  
  208.            Utilized when an FTAM Initiator contacts the FTP-FTAM
  209.            gateway to instigate a file transfer with an FTP Server.
  210.  
  211.    The gateway services' names were selected to identify the roles that
  212.    the FTP-FTAM gateway plays when performing file transfers.  For
  213.    example, when a file transfer is instigated by an FTP Client, it
  214.    contacts the FTP Server portion of the gateway, which maps protocol
  215.    information to the FTAM Initiator portion of the gateway, which in
  216.    turn contacts the remote FTAM Responder.  This example scenario uses
  217.    the FTP-Initiated Gateway Services.
  218.  
  219.    Figure 1 illustrates the perspective of the application process in
  220.    the FTP-Initiated service.  Figure 2 illustrates that of the FTAM-
  221.    Initiated service.
  222.  
  223.  
  224.  
  225.  
  226. Mindel & Slaski                                                 [Page 4]
  227.  
  228. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  229.  
  230.  
  231.           TCP Host                                  OSI Host
  232.  
  233.       +--------------+                        +------------------+
  234.  
  235.       |  FTP Client  |                        |  FTAM Responder  |
  236.  
  237.       +--------------+                        +------------------+
  238.  
  239.              |                                          |
  240.  
  241.              |                                          |
  242.  
  243.              |                                          |
  244.  
  245.              |            FTP-FTAM Gateway              |
  246.  
  247.              |    +--------------------------------+    |
  248.  
  249.              +--  |  FTP Server    FTAM Initiator  |  --+
  250.  
  251.                   +--------------------------------+
  252.  
  253.  
  254.              Figure 1  -  FTP-Initiated Gateway Service
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Mindel & Slaski                                                 [Page 5]
  283.  
  284. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  285.  
  286.  
  287.           TCP Host                                  OSI Host
  288.  
  289.       +--------------+                        +------------------+
  290.  
  291.       |  FTP Server  |                        |  FTAM Initiator  |
  292.  
  293.       +--------------+                        +------------------+
  294.  
  295.              |                                          |
  296.  
  297.              |                                          |
  298.  
  299.              |                                          |
  300.  
  301.              |                                          |
  302.  
  303.              |            FTP-FTAM Gateway              |
  304.  
  305.              |    +--------------------------------+    |
  306.  
  307.              +--  |  FTP Client    FTAM Responder  |  --+
  308.  
  309.                   +--------------------------------+
  310.  
  311.              Figure 2  -  FTAM-Initiated Gateway Service
  312.  
  313. 2. Gateway Architecture
  314.  
  315.    The gateway architecture, termed a protocol translator [NIST86], is
  316.    depicted in Figure 3.  It implements TCP/IP and OSI protocol stacks
  317.    with an application level process providing the link between the two.
  318.    The link between FTP and FTAM is defined by two sets of protocol
  319.    mappings, one each for the FTP-Initiated and FTAM-Initiated service
  320.    sets.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Mindel & Slaski                                                 [Page 6]
  339.  
  340. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  341.  
  342.  
  343.       +------------+                               +-------------+
  344.  
  345.       |  FTP Host  |                               |  FTAM Host  |
  346.  
  347.       +------------+                               +-------------+
  348.  
  349.              |                                            |
  350.  
  351.              |                                            |
  352.  
  353.              |                                            |
  354.  
  355.              |                                            |
  356.  
  357.              |    +---------------------------------+     |
  358.  
  359.              |    |          FTP  -  FTAM           |     |
  360.  
  361.              |    |       Gateway Application       |     |
  362.  
  363.              |    |---------------------------------|     |
  364.  
  365.              |    |      FTP       |      FTAM      |     |
  366.  
  367.              |    |----------------+----------------|     |
  368.  
  369.              |    |    TCP/IP      |    TP4/et al   |     |
  370.  
  371.              |    +---------------------------------+     |
  372.  
  373.              |           /|\               /|\            |
  374.  
  375.              |            |                 |             |
  376.  
  377.              +------------+                 +-------------+
  378.  
  379.  
  380.  
  381.                   Figure 3  -  Gateway Protocol Stack
  382.  
  383.    A fundamental aspect of this gateway architecture is that data is
  384.    mapped and transmitted immediately; i.e., no transferred file need
  385.    ever reside on the gateway file system.  In the context of this
  386.    document, the term "filesystem" refers to the file access and
  387.    maintenance mechanisms provided by the operating system.  This lack
  388.    of gateway filesystem interaction helps speed up the end-to-end data
  389.    transfer.  Another speed-enhancing feature of this architecture is
  390.    that both the FTP and FTAM network connections can operate
  391.  
  392.  
  393.  
  394. Mindel & Slaski                                                 [Page 7]
  395.  
  396. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  397.  
  398.  
  399.    simultaneously.  Additional advantages include:
  400.  
  401.         1. FTP and FTAM hosts require no modification to utilize gateway
  402.            services.
  403.  
  404.         2. Users require no knowledge of the other protocol.
  405.  
  406.         3. Gateway access control is not impaired (since users cannot
  407.            directly access the gateway filesystem).
  408.  
  409.         4. No additional filesystem space is required on the gateway.
  410.  
  411.         5. Interactive nature of protocols is preserved.
  412.  
  413.         6. Users become aware of fatal errors immediately.
  414.  
  415.    Disadvantages of this design include the initial coding effort
  416.    required to develop the gateway and the subsequent re-coding efforts
  417.    required to keep it current.
  418.  
  419. 3. Network Naming and Addressing
  420.  
  421.    The network naming and addressing schemes used by FTP (Domain Names
  422.    (DN), IP Addresses) and FTAM (Distinguished Names, Presentation
  423.    Addresses) are quite different.  This issue is quite apparent when a
  424.    user of one protocol needs to identify a destination host of the
  425.    other protocol.
  426.  
  427.    In the TCP/IP naming and addressing scheme, the identity of the FTP
  428.    Server is its DN and its IP address [RFC1101].  To initiate a
  429.    connection to an FTP Server, the FTP Client looks up a DN in either
  430.    the Domain Name System (DNS) or static host table and obtains an IP
  431.    address.
  432.  
  433.    In the OSI naming and addressing scheme, the identity of the FTAM
  434.    Responder service is its Distinguished Name in the OSI Directory
  435.    (X.500 or static table) and its Presentation address.  The
  436.    Distinguished Name is an authoritative description of the service.  A
  437.    Presentation address consists of a Presentation selector, a session
  438.    selector, a transport selector, and a network address.  To initiate a
  439.    connection to an FTAM Responder, the FTAM Initiator contacts the OSI
  440.    Directory, presents the Distinguished Name of the desired FTAM
  441.    Responder and asks for the Presentation address attribute associated
  442.    with that name.
  443.  
  444.    An alternative to the direct use of Distinguished Names is to use
  445.    "User Friendly Naming", as defined in [Kille92].  Gateway support for
  446.    "User Friendly Naming" is recommended, but not required.
  447.  
  448.  
  449.  
  450. Mindel & Slaski                                                 [Page 8]
  451.  
  452. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  453.  
  454.  
  455. 4. Use of the Gateway Services
  456.  
  457. 4.1. FTP-Initiated Gateway Service
  458.  
  459.    The FTP Client uses the FTP-Initiated gateway service to utilize the
  460.    resources of an FTAM Responder.
  461.  
  462.    To initiate a file transfer from an FTP Client, the Client connects
  463.    to the FTP-Initiated gateway service via TCP/IP.  The gateway then
  464.    establishes a connection, via OSI, to the FTAM Responder.  At this
  465.    point, the user can initiate file transfer operations.
  466.  
  467.    The FTP Client is responsible for providing the gateway with an
  468.    authoritative Distinguished Name, or a User Friendly Name, of the
  469.    desired OSI filestore.  It is the responsibility of the gateway to
  470.    resolve this Distinguished Name, or User Friendly Name, to its
  471.    corresponding Presentation address.
  472.  
  473.    The logon sequence taken by an FTP Client when initiating a file
  474.    transfer with an FTAM Responder is given below:
  475.  
  476.              % ftp gateway
  477.              ftp> site Distinguished-Name-of-FTAM Responder
  478.              ftp> user username
  479.              ftp> pass password
  480.  
  481.    The "ftp gateway" command initiates the connection between the FTP
  482.    Client and the gateway.  Once connected to the gateway, the FTP
  483.    Client should identify the desired FTAM Responder service via the
  484.    Responder's Distinguished Name, or User Friendly Name, which is
  485.    resolved by an algorithm running on the Directory Services provider.
  486.    This information is sent via a "site Distinguished-Name-of-FTAM
  487.    Responder" or "site UFN-of-FTAM Responder" command.
  488.  
  489.    Upon receipt of a Distinguished Name or a User Friendly Name, it is
  490.    the gateway's responsibility to resolve it to the Presentation
  491.    Address associated with that name.  This resolution is done by
  492.    contacting the OSI Directory (X.500 or local static table) and
  493.    presenting the Distinguished Name or User Friendly Name.  Once the
  494.    Presentation address is obtained, the gateway can attempt a
  495.    connection with the ultimate destination file transfer service
  496.    represented by this Presentation address.
  497.  
  498.    The userid is passed via the "user username" command, and the
  499.    password is passed via the "pass password".  If the FTAM Responder
  500.    requires a password, a password prompt should appear after issuing
  501.    the "user username" command.  It is anticipated that stronger
  502.    authentication mechanisms will be required for DoD gateways in the
  503.  
  504.  
  505.  
  506. Mindel & Slaski                                                 [Page 9]
  507.  
  508. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  509.  
  510.  
  511.    future.
  512.  
  513.    Using a specific example, suppose an FTAM Responder has the following
  514.    Distinguished Name:
  515.  
  516.            CountryName          =         "US"
  517.            Organization         =         "Open Networks"
  518.            OrganizationalUnit   =         "Network Services"
  519.            CommonName           =         "netwrx1"
  520.            CommonName           =         "FTAM service"
  521.  
  522.    and the FTP-FTAM gateway is available at "washdc1-osigw.navy.mil".
  523.  
  524.    The FTP user action will appear as:
  525.  
  526.            % ftp washdc1-osigw.navy.mil
  527.            ftp> site "c=US@o=Open Networks@ou=Network Services@cn=netwrx1
  528.                 @cn=FTAM service"
  529.            ftp> user mindel
  530.            ftp> pass ***********
  531.  
  532.    The "ftp washdc1-osigw.navy.mil" command initiates the connection
  533.    between the FTP Client and the FTP-FTAM gateway at the Washington
  534.    Navy Yard, Washington D.C.  Once connected, the OSI filestore at Open
  535.    Networks is identified via its Distinguished Name, "@c=US@o=Open
  536.    Networks@ou=Network Services@cn=netwrx1@cn=FTAM service".
  537.    Alternatively, a User Friendly Name, such as:
  538.  
  539.            "netwrx1, Open Networks, us"
  540.  
  541.    can be specified, enabling the following FTP user action:
  542.  
  543.            % ftp washdc1-osigw.navy.mil
  544.            ftp> site "netwrx1, Open Networks, us"
  545.            ftp> user mindel
  546.            ftp> pass ***********
  547.  
  548.    As this example indicates, use of an intermediate gateway is not
  549.    transparent.  To partially alleviate this awkwardness, the gateway
  550.    can be made more transparent through the registration of the FTAM
  551.    host in the DNS using the address of the gateway [RFC1279].
  552.  
  553.    An example will clarify this point.  Suppose that the "netwrx1, Open
  554.    Networks, us" FTAM host is registered in the TCP/IP DNS with the DN
  555.    of "ftam-service.netwrx1.com" and the IP address of the "washdc1-
  556.    osigw.navy.mil" gateway.  In this example, the following set of user
  557.    actions is required:
  558.  
  559.  
  560.  
  561.  
  562. Mindel & Slaski                                                [Page 10]
  563.  
  564. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  565.  
  566.  
  567.            % ftp ftam-service.netwrx1.com
  568.            ftp> user mindel
  569.            ftp> pass ***********
  570.  
  571.    Since the "ftam-service.netwrx1.com" really points to the gateway
  572.    address, the first command will connect the FTP Client to the
  573.    gateway.  The gateway will then use the name (using [RFC1279]) to
  574.    determine where the actual FTAM host is resident.  Gateway support
  575.    for RFC1279 is recommended, but not required.
  576.  
  577. 4.2. FTAM-Initiated Gateway Service
  578.  
  579.    The FTAM Initiator uses the FTAM-Initiated gateway service to utilize
  580.    the resources of an FTP Server.
  581.  
  582.    To initiate a file transfer from an FTAM Initiator, the Initiator
  583.    connects to the FTAM-Initiated gateway service via OSI.  The gateway
  584.    then establishes a connection, via TCP/IP, to the FTP Server.  At
  585.    this point, the user can initiate file transfer operations.
  586.  
  587.    The FTAM Initiator is responsible for providing the gateway with an
  588.    authoritative DN of the desired TCP/IP filestore.  It is the
  589.    responsibility of the gateway to resolve this DN to its corresponding
  590.    IP address.
  591.  
  592.    The logon sequence taken by an FTAM Initiator when initiating a file
  593.    transfer with an FTP Server is given below:
  594.  
  595.            % ftam gateway
  596.            ftam> user username@DNS-string
  597.            ftam> pass password
  598.  
  599.    The "ftam gateway" command initiates the connection between the FTAM
  600.    Initiator and the gateway.  Once connected, userid and TCP/IP
  601.    filestore are identified in the "username@DNS-string" argument to the
  602.    user command.  If the FTP Server requires a password, a password
  603.    prompt should appear after issuing the user command.
  604.  
  605.    The gateway should incorporate the BIND Resolver functionality so
  606.    that upon receipt of a Domain Name, the Gateway FTP Client can
  607.    resolve it via the distributed Domain Name System.
  608.  
  609.    Using a specific example, suppose that a FTP Server has the following
  610.    Domain Name:  "ftp-service.netwrx1.com" and an FTP-FTAM gateway is
  611.    available at:
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Mindel & Slaski                                                [Page 11]
  619.  
  620. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  621.  
  622.  
  623.            CountryName          =         "US"
  624.            Organization         =         "GOV"
  625.            OrganizationalUnit   =         "DOD"
  626.            OrganizationalUnit   =         "DISA"
  627.            Locality             =         "Washington Navy Yard"
  628.            CommonName           =         "wnyosi7"
  629.  
  630.    The FTAM user action will appear as:
  631.  
  632.            % ftam @c=US@o=GOV@ou=DOD@ou=DISA@l=Washington Navy Yard
  633.                   @cn=wnyosi7
  634.            ftam> user mindel@ftp-service.netwrx1.com
  635.            ftam> pass ***********
  636.  
  637.    Alternatively, a User Friendly Name could be used rather than the
  638.    Distinguished Name.
  639.  
  640.    As mentioned in the previous section, "Use of the FTP-Initiated
  641.    Gateway Service", use of an intermediate gateway is not transparent.
  642.    The gateway can be made more transparent through the registration of
  643.    the FTP host in the X.500 OSI Directory.  By querying the X.500 OSI
  644.    Directory, the gateway can identify where the actual host is
  645.    resident.
  646.  
  647.    For example, suppose that the FTP Server in the previous example
  648.    ("ftp-service.netwrx1.com") is registered in the X.500 Directory with
  649.    the following Distinguished Name:
  650.  
  651.            CountryName          =         "US"
  652.            Organization         =         "Open Networks"
  653.            OrganizationalUnit   =         "Network Services"
  654.            CommonName           =         "netwrx1"
  655.            CommonName           =         "FTP service"
  656.  
  657.    and the Presentation Address of the FTP-FTAM gateway.  This approach,
  658.    described in [RFC1279], would permit the following user interactions:
  659.  
  660.            % ftam @c=US@o=Open Networks@ou=Network Services
  661.                   @cn=netwrx1@cn=FTP Service"
  662.            ftam> user mindel
  663.            ftam> pass ***********
  664.  
  665. 4.3. Summary of Usage
  666.  
  667.    As shown in the discussions of the FTP-Initiated and FTAM-Initiated
  668.    Gateway Services, the gateway user does not have access to the
  669.    gateway filesystem; he merely makes use of the gateway logon
  670.    procedure to specify the ultimate destination userid and password.
  671.  
  672.  
  673.  
  674. Mindel & Slaski                                                [Page 12]
  675.  
  676. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  677.  
  678.  
  679.    Two methods of interaction with the gateway were described.  In the
  680.    former, the user must:
  681.  
  682.        1. Be aware that a gateway is required to reach the
  683.           destination FTP or FTAM host.
  684.  
  685.        2. Determine which gateway is most appropriate for their
  686.           respective source-destination pair.
  687.  
  688.        3. Explicitly connect to the gateway host prior to connecting
  689.           to the destination host.
  690.  
  691.    Needless to say, the exchange of files between FTP and FTAM hosts
  692.    requires more effort than that required for the exchange of files
  693.    between a pair of hosts utilizing the same file transfer protocol.
  694.  
  695.    The latter, more transparent method does not necessarily require that
  696.    the user determine which gateway is most appropriate for their
  697.    respective source-destination pair.  In fact, filestore service
  698.    providers are registered using the address of a predetermined
  699.    gateway.  With this approach, the user:
  700.  
  701.        1. Must be aware that a gateway is required to reach the
  702.           destination FTP or FTAM host.
  703.  
  704.        2. Need not determine which gateway is most appropriate to
  705.           access their ultimate destination host.
  706.  
  707.        3. Need not explicitly connect to the gateway prior to
  708.           connecting to the destination FTP or FTAM host.
  709.  
  710. 5. Gateway State Variables and Transitions
  711.  
  712.    As described, the FTP-FTAM gateway provides two sets of services:
  713.    FTP-Initiated and FTAM-Initiated.  Each service has its own mutually
  714.    exclusive set of state variables and transitions that
  715.    deterministically define the actions of the gateway.  Gateway support
  716.    for these state variables and transitions is required.
  717.  
  718.    For conciseness in this discussion, FTP-Initiated will be abbreviated
  719.    with "FTP-I", and FTAM-Initiated will be abbreviated with "FTAM-I".
  720.  
  721.    Concerning error conditions, if a connection is dropped when the
  722.    gateway is in any state other than FTP-I:Initial-State or FTAM-
  723.    I:Initial-State, then the gateway will issue a fatal error message to
  724.    the host with the remaining connection, and then drop that
  725.    connection.  If the remaining host is an FTP Client, then the gateway
  726.    will send an ABOR, QUIT, and 426 reply code (Connection closed,
  727.  
  728.  
  729.  
  730. Mindel & Slaski                                                [Page 13]
  731.  
  732. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  733.  
  734.  
  735.    transfer aborted).  If it is an FTAM Initiator, then the gateway will
  736.    send an F-P-ABORT with a <Diagnostic> value with identifier 1011
  737.    (Lower layer failure), as well as any known <Further Details>.
  738.  
  739.    Other error conditions are not addressed in this discussion.
  740.  
  741. 5.1. FTP-Initiated Gateway Service
  742.  
  743.    The set of state variables for the FTP-Initiated Gateway service
  744.    follow:
  745.  
  746.   State Variable                State Definition
  747.   ----------------------------------------------------------------
  748.  
  749.   FTP-I:Initial-State           Initial state of FTP-Initiated Gateway
  750.                                 service.
  751.  
  752.                                 Gateway is waiting for an FTP Client to
  753.                                 issue a USER command in order to
  754.                                 proceed with connection establishment
  755.                                 with remote FTAM Responder.  If SITE or
  756.                                 ACCT commands are sent while waiting
  757.                                 for USER command, save arguments for
  758.                                 subsequent use.
  759.  
  760.   FTP-I:Wait-for-PASS           Gateway has already received USER
  761.                                 command from FTP Client, as well as
  762.                                 userid and destination host DN.
  763.                                 Gateway is waiting for the FTAM
  764.                                 Responder logon password.
  765.  
  766.   FTP-I:Wait-for-PAddress       Gateway has already received PASS
  767.                                 command from FTP Client.  Gateway is
  768.                                 resolving the provided FTAM Responder's
  769.                                 address to a Presentation Address.  The
  770.                                 provided address may be a Distinguished
  771.                                 Name, User Friendly Name, or Domain
  772.                                 Name.  Resolution will typically be
  773.                                 done using X.500 directory services.
  774.  
  775.   FTP-I:Wait-for-Connection     Gateway has initiated a connection to
  776.                                 the FTAM Responder and is waiting for
  777.                                 notification as to whether or not the
  778.                                 logon is successful.
  779.  
  780.   FTP-I:Wait-for-ClientCmd      Connection exists between FTP Client
  781.                                 and FTAM Responder.  Gateway is waiting
  782.                                 for next command or response from FTP
  783.  
  784.  
  785.  
  786. Mindel & Slaski                                                [Page 14]
  787.  
  788. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  789.  
  790.  
  791.                                 Client.  Commands and responses are
  792.                                 mapped as they are received.
  793.  
  794.   FTP-I:Wait-for-RespondrCmd    Connection exists between FTP Client
  795.                                 and FTAM Responder.  Gateway is waiting
  796.                                 for next command or response from FTAM
  797.                                 Responder.  Commands and responses are
  798.                                 mapped as they are received.
  799.  
  800.    Each of the possible state transitions is provided in the remainder
  801.    of Section 5.1.  For each state transition, the actions causing the
  802.    transition are listed.
  803.  
  804. 5.1.1. FTP-I:Initial-State   -->   FTP-I:Initial-State
  805.  
  806.         1. Gateway receives SITE or ACCT command from FTP Client.
  807.            SITE argument includes Distinguish Name of FTAM Responder.
  808.  
  809. 5.1.2. FTP-I:Initial-State   -->   FTP-I:Wait-for-PASS
  810.  
  811.         1. Gateway receives USER command from FTP Client.  Arguments
  812.            include Distinguished Name of FTAM Responder and userid on
  813.            FTAM responder.
  814.  
  815. 5.1.3. FTP-I:Wait-for-PASS   -->   FTP-I:Wait-for-PAddress
  816.  
  817.         1. Gateway receives PASS command from FTP Client.
  818.  
  819. 5.1.4. FTP-I:Wait-for-PAddress   -->   FTP-I:Wait-for-Connection
  820.  
  821.         1. Gateway resolves received Distinguished Name, User Friendly
  822.            Name, or Domain Name of FTAM Responder to OSI Presentation
  823.            address.
  824.         2. Gateway sends F-INITIALIZE to FTAM Responder with
  825.            Presentation Address in <Called Presentation Address>,
  826.            userid in <Initiator Identity>, and password in <Filestore
  827.            Password>.
  828.  
  829. 5.1.5. FTP-I:Wait-for-Connection   -->   FTP-I:Wait-for-NextMapping
  830.  
  831.         1. Gateway receives <State Result> of "Success" .
  832.         2. Gateway sends 230 reply code (User Logged In) to FTP
  833.            Client.
  834.  
  835. 5.1.6. FTP-I:Wait-for-ClientCmd   -->   FTP-I:Wait-for-RespondrCmd
  836.  
  837.         1. Gateway receives command or response from FTP Client and
  838.            maps it to FTAM protocol, as defined in section 8.1.
  839.  
  840.  
  841.  
  842. Mindel & Slaski                                                [Page 15]
  843.  
  844. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  845.  
  846.  
  847. 5.1.7. FTP-I:Wait-for-RespondrCmd   -->   FTP-I:Wait-for-ClientCmd
  848.  
  849.         1. Gateway receives command or response from FTAM Responder
  850.            and maps it to FTP protocol, as defined in section 8.1.
  851.  
  852. 5.1.8. FTP-I:Wait-for-ClientCmd   -->   FTP-I:Wait-for-USER
  853.  
  854.         1. Gateway receives QUIT command from FTP Client; maps QUIT as
  855.            per Section 8.1.
  856.  
  857. 5.2. FTAM-Initiated Gateway Service
  858.  
  859.    The set of state variables for the FTAM-Initiated Gateway service
  860.    follow:
  861.  
  862.   State Variable                State Definition
  863.   ----------------------------------------------------------------
  864.  
  865.   FTAM-I:Initial-State          Initial state of FTAM-Initiated Gateway
  866.                                 Service.
  867.  
  868.                                 Gateway is waiting for an FTAM
  869.                                 Initiator to issue an F-INITIALIZE
  870.                                 command in order to proceed with
  871.                                 connection establishment with remote
  872.                                 FTP Server.
  873.  
  874.   FTAM-I:Wait-for-IPAddress     Gateway has already received F-
  875.                                 INITIALIZE from FTAM Initiator.
  876.                                 Gateway is resolving the provided FTP
  877.                                 Server's address to an IP address.  The
  878.                                 provided address may be a Domain Name,
  879.                                 Distinguished Name, or User Friendly
  880.                                 Name.
  881.  
  882.   FTAM-I:Wait-for-Connection    Gateway has initiated a connection to
  883.                                 the FTP Server and is waiting for
  884.                                 notification as to whether or not the
  885.                                 logon is successful.
  886.  
  887.   FTAM-I:Wait-for-InitiatrCmd   Connection exists between FTAM
  888.                                 Initiator and FTP Server.  Gateway is
  889.                                 waiting for next command or response
  890.                                 from FTAM Initiator.  Commands and
  891.                                 responses are mapped as they are
  892.                                 received.
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Mindel & Slaski                                                [Page 16]
  899.  
  900. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  901.  
  902.  
  903.   FTP-I:Wait-for-ServerCmd      Connection exists between FTAM
  904.                                 Initiator and FTP Server.  Gateway is
  905.                                 waiting for next command or response
  906.                                 from FTP Server.  Commands and
  907.                                 responses are mapped as they are
  908.                                 received.
  909.  
  910.    Each of the possible state transitions is provided in the remainder
  911.    of Section 5.2.  For each state transition, the actions causing the
  912.    transition are listed.
  913.  
  914. 5.2.1. FTAM-I:Initial-State   -->   FTAM-I:Wait-for-IPAddress
  915.  
  916.         1. Gateway receives F-INITIALIZE from FTAM Initiator.  Domain
  917.            Name of FTP Server is either in <Responding Presentation
  918.            Address> or in the "@host" portion of the <Initiator
  919.            Identity> parameter.  The userid is in <Initiator
  920.            Identity>, and password is in <Filestore Password>
  921.            parameter.
  922.  
  923. 5.2.2. FTAM-I:Wait-for-IPAddress   -->   FTAM-I:Wait-for-Connection
  924.  
  925.         1. Gateway resolves received Domain Name, Distinguished Name,
  926.            or User Friendly Name of FTP Server to IP address.
  927.         2. Gateway sends USER to FTP Server.
  928.         3. Gateway sends PASS to FTP Server.
  929.  
  930. 5.2.3. FTAM-I:Wait-for-Connection  -->   FTAM-I:Wait-for-NextMapping
  931.  
  932.         1. Gateway receives 230 reply code (User Logged In) from FTP
  933.            Server.
  934.         2. Gateway sends <State Result> of "Success" to FTAM
  935.            Initiator.
  936.  
  937. 5.2.4  FTAM-I:Wait-for-InitiatrCmd   -->   FTAM-I:Wait-for-ServerCmd
  938.  
  939.         1. Gateway receives command or response from FTAM Initiator
  940.            and maps it to FTP protocol, as defined in section 8.2.
  941.  
  942. 5.2.5. FTAM-I:Wait-for-ServerCmd   -->   FTAM-I:Wait-for-InitiatrCmd
  943.  
  944.         1. Gateway receives command or response from FTP Server and
  945.            maps it to FTAM protocol, as defined in section 8.2.
  946.  
  947. 5.2.6. FTAM-I:Wait-for-InitiatrCmd  -->  FTAM-I:Wait-for-INITIALIZE
  948.  
  949.         1. Gateway receives F-CLOSE primitive from FTAM Initiator;
  950.            maps F-CLOSE as per Section 8.2.
  951.  
  952.  
  953.  
  954. Mindel & Slaski                                                [Page 17]
  955.  
  956. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  957.  
  958.  
  959. 6. Document Type Support
  960.  
  961.    The set of FTAM document types supported by the FTP-FTAM gateway is a
  962.    subset of the document types identified in the Stable Implementation
  963.    Agreements for Open Systems Interconnection Protocols:  Part 9 - FTAM
  964.    Phase 2, produced by the March 1992 Open Systems Environment
  965.    Implementors' Workshop [NIST92].  This subset was chosen for its
  966.    equivalence to those document types supported by FTP.  The set
  967.    includes:
  968.  
  969.                 FTAM-1    "ISO FTAM Unstructured text file
  970.  
  971.                 FTAM-3    "ISO FTAM Unstructured binary file
  972.  
  973.                 NBS-9     "NBS-9 FTAM File directory file"
  974.  
  975.       FTAM document types map to FTP document types as follows:
  976.  
  977.                 FTAM      <->       FTP
  978.                 ----------------------------------
  979.  
  980.                 FTAM-1    <->       ASCII
  981.  
  982.                 FTAM-3    <->       8 bit binary
  983.  
  984.                 NBS-9     <->       Directory
  985.  
  986.    Gateway support for FTAM-1 and FTAM-2 is required, whereas support
  987.    for NBS-9 is recommended.
  988.  
  989. 6.1. Notes on NBS-9
  990.  
  991.    NBS-9 is optional in GOSIP versions 1 and 2 [NIST91].  NBS-9 will be
  992.    superseded by its replacement when ISO/IEC ISP 10607-2 and ISO/IEC
  993.    ISP 10607-2/Amendment 1 are published [NIST92].
  994.  
  995.    For conformance to NBS-9, an FTAM Responder is only required to
  996.    return the <Filename> file attribute, subject to local security and
  997.    access control.  All other requested attributes need not be returned.
  998.  
  999.    Systems supporting the NBS-9 document type shall make available an
  1000.    NBS-9 document called 'DIRLIS'.  This document can be used to obtain
  1001.    a listing of files and their associated attributes from a remote
  1002.    Filestore.
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Mindel & Slaski                                                [Page 18]
  1011.  
  1012. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1013.  
  1014.  
  1015. 7. Functional Comparison of FTP and FTAM
  1016.  
  1017.    A comprehensive comparison of the services offered by FTP and FTAM is
  1018.    beyond the scope of this specification.  What follows is an analysis
  1019.    of several key points.  Refer to [NIST 86a] and [ROSE90] for a more
  1020.    complete discourse on this topic.
  1021.  
  1022.    FTAM is not a superset of FTP; each protocol has functions that only
  1023.    it performs.  The set of FTAM functions is, however, larger than the
  1024.    set of FTP functions.
  1025.  
  1026.    FTP combines file management and file transfer into one protocol
  1027.    engine, whereas FTAM separates management and transfer as they relate
  1028.    to files.
  1029.  
  1030.    The file transfer services of both FTP and FTAM expect a reliable
  1031.    underlying end-to-end service.  At a minimum, this service includes
  1032.    the capability to transfer entire files between remote hosts and to
  1033.    display remote filenames.
  1034.  
  1035.    In addition to this basic file transfer service, FTAM supports the
  1036.    capability to:  access a few records from a file server, create a
  1037.    network file system (similar to Sun's Network File System), handle
  1038.    printing and spooling, and access remote database records.  FTP does
  1039.    not support these additional capabilities.
  1040.  
  1041.    FTP uses TELNET services to set up a connection between the FTP
  1042.    Client and FTP Server.  A three-digit reply code followed by
  1043.    explanatory text indicates the status of the preceding request and
  1044.    provides diagnostic information explaining each transaction.
  1045.  
  1046.    FTAM relies on the Association Control Service Element (ACSE) to
  1047.    start and stop the network for network file interaction.  Generally,
  1048.    the ASCE establishes the application association and related
  1049.    application context needed to support the FTAM protocol.
  1050.  
  1051.    The FTAM protocol is modularized so as to keep the allowable number
  1052.    of actions in any particular state relatively small.  There are many
  1053.    more possible sequences of FTP operations than possible sequences of
  1054.    FTAM operations [NIST86].
  1055.  
  1056.    Because FTAM is more robust than FTP, FTAM allows greater flexibility
  1057.    for conveying information about files.  FTAM deals only with aspects
  1058.    of application processes, and leaves data representation and data
  1059.    management facilities to other OSI service elements.
  1060.  
  1061.    In contrast to the Client/Server model present in the FTP scheme,
  1062.    FTAM is based on the Initiator/Responder model.  The key distinction
  1063.  
  1064.  
  1065.  
  1066. Mindel & Slaski                                                [Page 19]
  1067.  
  1068. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1069.  
  1070.  
  1071.    is that once the FTAM Initiator has established a connection with a
  1072.    remote host, either the Initiator or Responder can request services
  1073.    of the other.  In the FTP realm, the Client both initiates a
  1074.    connection and requests all services.
  1075.  
  1076.    The FTP Client knows the real properties of the remote host
  1077.    filesystem.  FTAM, in contrast, embraces a conceptual model of a
  1078.    filesystem, labeled a virtual filestore model.  The virtual filestore
  1079.    is a collection of files, each of which has a name that uniquely
  1080.    identifies it.  Each file has a set of attributes, such as ownership
  1081.    information and contents, which is the data associated with the file.
  1082.    One file attribute is the <Contents Type> of the file, typically of
  1083.    value "FTAM-1", "FTAM-3", or "NBS-9".  The FTAM Initiator only knows
  1084.    the properties of the corresponding Responder and virtual filestore,
  1085.    not the real properties of the filesystem on the remote host.
  1086.  
  1087. 7.1. Loss of Functionality
  1088.  
  1089.    As happens whenever two dissimilar protocols, or languages for that
  1090.    matter, are translated, some loss of functionality is inevitable.
  1091.    With reference to the FTP-FTAM gateway, several of the most blatant
  1092.    losses of functionality are:
  1093.  
  1094.         1. Diagnostics passed between protocols may not be precisely
  1095.            translated.
  1096.  
  1097.         2. The FTAM partial file (record) transfer may not be
  1098.            supported.
  1099.  
  1100.         3. Some FTAM attributes are not supported by FTP.
  1101.  
  1102.    The primary goal of the gateway protocol mappings are to minimize
  1103.    this loss of functionality. As this gateway specification and
  1104.    subsequent implementations evolve, means to partially overcome loss
  1105.    of functionality may become more obvious.  For example, the gateway
  1106.    may be able to emulate file record transfers between FTAM Initiators
  1107.    and FTP Servers.
  1108.  
  1109. 8. Mapping of Protocol Functions and Representations
  1110.  
  1111.    The mappings presented are based upon the FTAM protocol
  1112.    implementation as defined in Stable Implementation Agreements for
  1113.    Open Systems Interconnection Protocols:  Part 9 - FTAM Phase 2,
  1114.    produced by the March 1992 Open Systems Environment Implementors'
  1115.    Workshop [NIST92], and in [ISO8571-1], [ISO8571-2],[ISO8571-
  1116.    3],[ISO8571-4], and [ISO8571-5].  The FTP protocol as defined in
  1117.    Request for Comments [RFC959].   The mappings are strongly influenced
  1118.    by the work of M. A. Wallace et. al. at NIST [NIST86] and John Scott
  1119.  
  1120.  
  1121.  
  1122. Mindel & Slaski                                                [Page 20]
  1123.  
  1124. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1125.  
  1126.  
  1127.    at MITRE [MITRE87].
  1128.  
  1129.    A key goal of the mappings presented in this document is to minimize
  1130.    the loss of functionality between the two protocols.  The specific
  1131.    approach taken to implement the mappings is left to the discretion of
  1132.    the gateway implementor.  The focus of the protocol function and
  1133.    representation mappings is on non-error encumbered processing.  The
  1134.    mapping of diagnostic and error messages is treated separately in
  1135.    section 9.
  1136.  
  1137.    At a minimum, the FTAM implementation in the FTP-FTAM gateway support
  1138.    for Implementation Profiles T1 (Simple File Transfer) and M1
  1139.    (Management), as defined in [NIST92], is required.  These
  1140.    Implementation Profiles correspond to the A/111 and A/13 Profiles of
  1141.    Standards Promotion and Application Group in Europe, respectively
  1142.    [NIST92].
  1143.  
  1144.    At a minimum, the gateway support for the following is required:
  1145.  
  1146.       ASCII and 8 bit binary file types.  It should also support FTP
  1147.       File Stream Mode.
  1148.  
  1149.       The following FTAM document types: FTAM-1 (unstructured text
  1150.       file), FTAM-3 (unstructured binary file), and NBS-9 (set of
  1151.       directory entries).
  1152.  
  1153.    POSIX file naming and organization conventions are assumed in these
  1154.    mappings; i.e., files in the systems are assumed to be organized in a
  1155.    hierarchical structure in which all of the non-terminal nodes are
  1156.    directories and all of the terminal nodes are any other type of file.
  1157.  
  1158.    The following terminology is used in the mapping specifications:
  1159.  
  1160.       argument .......FTP Service Command argument, as used in [RFC959].
  1161.  
  1162.       parameter ......FTAM Service Primitive parameters and attributes,
  1163.                       as enumerated in Tables 6, 50, and 51 of [ISO8571-
  1164.                       3].
  1165.  
  1166.    The following notation is used in the mapping specifications:
  1167.  
  1168.       Arguments and parameters are enclosed in angle brackets; e.g.,
  1169.       <Action Result>
  1170.  
  1171.       Values of arguments and parameters are enclosed in quotation
  1172.       marks; e.g., "Success"
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Mindel & Slaski                                                [Page 21]
  1179.  
  1180. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1181.  
  1182.  
  1183.       FTP Service Commands and FTAM Primitives are in uppercase; e.g., F-
  1184.       INITIALIZE
  1185.  
  1186. 8.1.  FTP-Initiated Gateway Service
  1187.  
  1188.    The protocol mapping between FTP and FTAM may be one-to-zero (i.e.,
  1189.    not mappable), one-to-one, or one-to-many.
  1190.  
  1191.    The general steps taken by the FTP-FTAM gateway to provide the FTP-
  1192.    Initiated service are:
  1193.  
  1194.         1. Accept an FTP Client request at the FTP Server side of the
  1195.            gateway service.
  1196.  
  1197.         2. Map the request to the (set of) corresponding FTAM
  1198.            Initiator function(s).
  1199.  
  1200.         3. Acting as an FTAM Initiator, send the FTAM Initiator
  1201.            function(s) to the FTAM Responder.
  1202.  
  1203.         4. Accept information returned to the FTAM Initiator side of
  1204.            the gateway.  This information originated at the FTAM
  1205.            Responder.
  1206.  
  1207.         5. Map this returned information to the protocol form
  1208.            understood by the FTP Server side of the gateway.
  1209.  
  1210.         6. Send this returned information from the FTP Server side of
  1211.            the gateway to the FTP Client.
  1212.  
  1213.    For each FTP protocol function, the FTAM protocol functions required
  1214.    to map it are identified:
  1215.  
  1216.    FTP       FTAM
  1217.  
  1218.    ------------------------------------------------------------------
  1219.  
  1220.    ABOR      F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-GROUP
  1221.  
  1222.    ACCT      F-INITIALIZE,
  1223.  
  1224.    ALLO      none
  1225.  
  1226.    APPE      F-BEGIN-GROUP, F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F-
  1227.              DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT,
  1228.              F-TRANSFER-END, F-WRITE
  1229.  
  1230.    CDUP      F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-SELECT
  1231.  
  1232.  
  1233.  
  1234. Mindel & Slaski                                                [Page 22]
  1235.  
  1236. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1237.  
  1238.  
  1239.    CWD       F-BEGIN-GROUP, F-END-GROUP, F-DESELECT, F-SELECT
  1240.  
  1241.    DELE      F-BEGIN-GROUP, F-DELETE, F-END-GROUP, F-SELECT
  1242.  
  1243.    HELP      none
  1244.  
  1245.    LIST      F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F-
  1246.              END-GROUP, F-OPEN, F-READ, F-READ-ATTRIBUTES, F-SELECT, F-
  1247.              TRANSFER-END
  1248.  
  1249.    MKD       none
  1250.  
  1251.    MODE      none
  1252.  
  1253.    NLST      F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F-
  1254.              END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-END
  1255.  
  1256.    NOOP      none
  1257.  
  1258.    PASS      F-INITIALIZE
  1259.  
  1260.    PASV      none
  1261.  
  1262.    PORT      none
  1263.  
  1264.    PWD       F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-READ-ATTRIBUTES,
  1265.              F-SELECT
  1266.  
  1267.    QUIT      F-P-ABORT or F-U-ABORT, F-TERMINATE
  1268.  
  1269.    REIN      F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-GROUP
  1270.  
  1271.    REST      F-CHECK, F-RESTART
  1272.  
  1273.    RETR      F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F-
  1274.              END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-END
  1275.  
  1276.    RMD       none
  1277.  
  1278.    RNFR      F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-SELECT
  1279.  
  1280.    RNTO      F-BEGIN-GROUP, F-CHANGE-ATTRIBUTES, F-DESELECT, F-END-
  1281.              GROUP, F-SELECT
  1282.  
  1283.    SITE      F-INITIALIZE
  1284.  
  1285.    SMNT      none
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Mindel & Slaski                                                [Page 23]
  1291.  
  1292. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1293.  
  1294.  
  1295.    STAT      none
  1296.  
  1297.    STOR      F-BEGIN-GROUP,F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F-
  1298.              DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT,
  1299.              F-TRANSFER-END, F-WRITE
  1300.  
  1301.    STOU      F-BEGIN-GROUP, F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F-
  1302.              DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT,
  1303.              F-TRANSFER-END, F-WRITE
  1304.  
  1305.    STRU      none
  1306.  
  1307.    TYPE      none
  1308.  
  1309.    USER      F-INITIALIZE
  1310.  
  1311.    The remainder of this section presents detailed mapping procedures
  1312.    for each of the FTP protocol functions.  Gateway support for these
  1313.    mappings is required.
  1314.  
  1315. 8.1.1. ABOR
  1316.  
  1317.         1. Send F-CANCEL to FTAM Responder.
  1318.         2. Send the following grouped request to the FTAM Responder.
  1319.            F-BEGIN-GROUP
  1320.            F-CLOSE
  1321.            F-DESELECT
  1322.            F-END-GROUP
  1323.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1324.            parameters to equivalent FTP reply code(s) and send reply
  1325.            codes to FTP Client.
  1326.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1327.            Result> and <Diagnostic> parameters and send parameters to
  1328.            FTAM Responder.
  1329.  
  1330. 8.1.2. ACCT
  1331.  
  1332.         1. Set <Account> parameter value for issuing F-INITIALIZE to
  1333.            FTAM Responder.
  1334.         2. If <Called Presentation Address>, <Initiator Identity>, and
  1335.            <Filestore Password> parameters are available, attempt
  1336.            connection with FTAM Responder;
  1337.            Otherwise wait for additional ACCT commands.
  1338.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1339.            parameters to equivalent FTP reply code(s) and send reply
  1340.            codes to FTP Client.
  1341.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1342.            Result> and <Diagnostic> parameters and send parameters to
  1343.  
  1344.  
  1345.  
  1346. Mindel & Slaski                                                [Page 24]
  1347.  
  1348. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1349.  
  1350.  
  1351.            FTAM Responder.
  1352.  
  1353.         Note:
  1354.         a. The ACCT command will be effective with the next PASS
  1355.            command.
  1356.  
  1357. 8.1.3. ALLO
  1358.  
  1359.         1. Return a 200 reply code to FTP Client.
  1360.  
  1361. 8.1.4. APPE
  1362.  
  1363.         1. Save current pathname by appending saved CWD string with
  1364.            <pathname> argument.  If no saved CWD string, proceed to
  1365.            step 12.
  1366.         2. Send the following grouped request to FTAM Responder.
  1367.             F-BEGIN-GROUP
  1368.             F-SELECT
  1369.             F-READ-ATTRIBUTES
  1370.                 Save <Contents Type> parameter value
  1371.             F-DESELECT
  1372.             F-END-GROUP
  1373.         3. If the <Contents Type> parameter value returned with the
  1374.            F-READ-ATTRIBUTES has a value of "NBS-9", proceed to step
  1375.            12.
  1376.         4. Send the following grouped request to the FTAM responder.
  1377.             F-BEGIN-GROUP
  1378.             F-CREATE
  1379.                 Set the <Override> parameter in the F-CREATE to
  1380.                 "Select Old File".
  1381.             F-OPEN
  1382.             F-END-GROUP
  1383.         5. If the file existed, set the <Contents Type> parameter in
  1384.            the F-CREATE to match that returned by the
  1385.            F-READ-ATTRIBUTES.
  1386.         6. If the file did not exist and no previous FTP TYPE "Image"
  1387.            command was issued, then set the <Contents Type> parameter
  1388.            to "FTAM-1";
  1389.            Otherwise, set the <Contents Type> parameter to "FTAM-3".
  1390.         7. Send F-WRITE, with <Bulk Data Transfer Specification, FADU
  1391.            Operation> parameter set to "File Extend", to FTAM
  1392.            Responder.
  1393.         8. Loop reading data from FTP data connection, sending the
  1394.            data in F-DATA PDUs until end-of-file on the FTP
  1395.            connection.
  1396.         9. Send F-DATA-END to FTAM Responder.
  1397.         10. Send F-TRANSFER-END to FTAM Responder.
  1398.         11. Send the following grouped request to the FTAM Responder.
  1399.  
  1400.  
  1401.  
  1402. Mindel & Slaski                                                [Page 25]
  1403.  
  1404. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1405.  
  1406.  
  1407.             F-BEGIN-GROUP
  1408.             F-CLOSE
  1409.             F-DESELECT
  1410.             F-END-GROUP
  1411.         12. Translate FTAM Responder <Action Result> and <Diagnostic>
  1412.             parameters to equivalent FTP reply code(s) and send reply
  1413.             code(s) to FTP Client.
  1414.         13. Translate FTP Client reply codes to equivalent FTAM
  1415.             <Action Result> and <Diagnostic> parameters and send
  1416.             parameters to FTAM Responder.
  1417.  
  1418.         Note:
  1419.         a. <pathname> argument is assumed to be a filename, relative
  1420.            to the currently saved CWD.
  1421.         b. CWD of the FTAM system must be defined prior to issuance of
  1422.            APPE.
  1423.  
  1424. 8.1.5. CDUP
  1425.  
  1426.         1. Determine parent directory from saved CWD string.  If no
  1427.            saved CWD string, proceed to step 4.
  1428.         2. Set <Contents Type> parameter to "NBS-9".
  1429.         3. Send the following grouped request to FTAM Responder.
  1430.            F-BEGIN-GROUP
  1431.            F-SELECT
  1432.            F-DESELECT
  1433.            F-END-GROUP
  1434.         4. Translate FTAM Responder <Action Result> and <Diagnostic>
  1435.            parameters to equivalent FTP reply code(s) and send reply
  1436.            code(s) to FTP Client.
  1437.         5. Translate FTP Client reply codes to equivalent FTAM <Action
  1438.            Result> and <Diagnostic> parameters and send parameters to
  1439.            FTAM Responder.
  1440.  
  1441.         Note:
  1442.         a. A POSIX file organization is assumed; i.e., files in the
  1443.            systems are organized in a hierarchical structure in which
  1444.            all of the non-terminal nodes are directories and all of
  1445.            the terminal nodes are any other type of file.
  1446.         b. If the parent directory does not exist, the current working
  1447.            directory remains unchanged.
  1448.         c. CWD of the FTAM system must be defined prior to issuance of
  1449.            CDUP.
  1450.  
  1451. 8.1.6. CWD
  1452.  
  1453.         1. Save <pathname> argument as CWD string.
  1454.         2. Set <Contents Type> parameter to "NBS-9".
  1455.  
  1456.  
  1457.  
  1458. Mindel & Slaski                                                [Page 26]
  1459.  
  1460. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1461.  
  1462.  
  1463.         3. Send the following grouped request to FTAM Responder.
  1464.             F-BEGIN-GROUP
  1465.             F-SELECT
  1466.             F-DESELECT
  1467.             F-END-GROUP
  1468.         4. Translate FTAM Responder <Action Result> and <Diagnostic>
  1469.            parameters to equivalent FTP reply code(s) and send reply
  1470.            code(s) to FTP Client.
  1471.         5. Translate FTP Client reply codes to equivalent FTAM <Action
  1472.            Result> and <Diagnostic> parameters and send parameters to
  1473.            FTAM Responder.
  1474.  
  1475.         Note:
  1476.         a. The <pathname> argument is assumed to be an absolute
  1477.            directory specification.
  1478.         b. If the specified directory does not exist, the current
  1479.            working directory remains unchanged.
  1480.         c. Saved CWD string is used in other FTP-to-FTAM mappings,
  1481.            such as APPE.
  1482.  
  1483. 8.1.7. DELE
  1484.  
  1485.         1. Save current pathname by appending saved CWD string with
  1486.            <pathname> argument.  If no saved CWD string, proceed to
  1487.            step 3.
  1488.         2. Send the following grouped request to FTAM Responder.
  1489.             F-BEGIN-GROUP
  1490.             F-SELECT
  1491.             F-DELETE
  1492.             F-END-GROUP
  1493.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1494.            parameters to equivalent FTP reply code(s) and send reply
  1495.            code(s) to FTP Client.
  1496.         4. Translate FTP Client reply codes to equivalent FTAM
  1497.            parameters and send parameters to FTAM Responder.
  1498.  
  1499.         Note:
  1500.         a. <pathname> argument is assumed to be a filename, relative
  1501.            to the currently saved CWD.
  1502.         b. CWD of the FTAM system must be defined prior to issuance of
  1503.            DELE.
  1504.  
  1505. 8.1.8. HELP
  1506.  
  1507.         1. If no <string> argument is provided, send helpful
  1508.            information about the implementation of the gateway to the
  1509.            FTP Client.  If an argument is provided, send more specific
  1510.            information.
  1511.  
  1512.  
  1513.  
  1514. Mindel & Slaski                                                [Page 27]
  1515.  
  1516. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1517.  
  1518.  
  1519.         2. Return the FTP reply code 214 to the FTP Client.
  1520.  
  1521. 8.1.9. LIST
  1522.  
  1523.         1. If <pathname> argument is provided, proceed to step 3.
  1524.         2. Save current pathname by appending saved CWD string with
  1525.            <pathname> argument; If no saved CWD string, proceed to
  1526.            step 11.
  1527.         3. Send the following grouped request to the FTAM Responder.
  1528.             F-BEGIN-GROUP
  1529.             F-SELECT
  1530.             F-READ-ATTRIBUTES
  1531.                 Save <Filename>, <Contents Type>, <Data/Time of Last
  1532.            Modification>, and <Filesize> parameters
  1533.             F-DESELECT
  1534.             F-END-GROUP
  1535.         4. If the <Contents Type> parameter of the F-READ-ATTRIBUTES
  1536.            is not "NBS-9", then return the <Filename>, <Contents
  1537.            Type>, <Date/Time of Last Modification>, and <Filesize>
  1538.            parameter values, obtained with the previous
  1539.            F-READ-ATTRIBUTES, to the FTP data connection;
  1540.            and proceed to step 8.
  1541.         5. Send the following grouped request to the FTAM Responder.
  1542.             F-BEGIN-GROUP
  1543.             F-SELECT
  1544.             F-OPEN
  1545.             F-END-GROUP
  1546.         6. Send F-READ to FTAM Responder.
  1547.         7. Loop reading F-DATA until F-DATA-END.  As data is received,
  1548.            write the <Filename>, <Permitted Actions>, <Contents Type>,
  1549.            and <Date/Time of Last Modification> parameter values from
  1550.            the PDU to the FTP data connection.
  1551.         8. Send F-TRANSFER-END to FTAM Responder.
  1552.         9. Send the following grouped request to the FTAM responder.
  1553.             F-BEGIN-GROUP
  1554.             F-CLOSE
  1555.             F-DESELECT
  1556.             F-END-GROUP
  1557.         10. Translate FTAM Responder <Action Result> and <Diagnostic>
  1558.            parameters to equivalent FTP reply code(s) and send reply
  1559.            code(s) to FTP Client.
  1560.         11. Translate FTP Client reply codes to equivalent FTAM <Action
  1561.            Result> and <Diagnostic> parameters and send parameters to
  1562.            FTAM Responder.
  1563.  
  1564.         Note:
  1565.         a. Assume the <pathname> argument is relative to the saved
  1566.            CWD, whether filename or directory specification.
  1567.  
  1568.  
  1569.  
  1570. Mindel & Slaski                                                [Page 28]
  1571.  
  1572. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1573.  
  1574.  
  1575.         b. CWD of the FTAM system must be defined prior to issuance of
  1576.            LIST.
  1577.         c. Transfers over data connection should be in ASCII.
  1578.         e. If list of files with full directory/file specification is
  1579.            received from FTAM Responder, then gateway should parse
  1580.            list to strip off directory portion.
  1581.  
  1582. 8.1.10. MKD
  1583.  
  1584.         1. Return a 502 reply code (Command not implemented) to the
  1585.            FTP Client.
  1586.  
  1587.         Note:
  1588.         a. As indicated in the NIST Stable Implementation Agreements
  1589.            for FTAM [NIST92], creation or deletion of NBS-9 files is
  1590.            outside the scope of the agreements.
  1591.  
  1592. 8.1.11. MODE
  1593.  
  1594.         1. If <argument> is "Stream", return 200 reply code to FTP
  1595.            Client; Otherwise return a 504 reply code (Command not
  1596.            implemented for that parameter).
  1597.  
  1598. 8.1.12. NLST
  1599.  
  1600.         1. If <pathname> argument is provided, use <pathname> argument
  1601.            as <Filename> parameter value in F-SELECT issued in step 3.
  1602.         2. If no argument is provided, use saved CWD value as
  1603.            <Filename> parameter value in F-SELECT issued in step 3; If
  1604.            no CWD string is saved and no argument is provided, proceed
  1605.            to step 9.
  1606.         3. Set <Contents Type> parameter to "NBS-9".
  1607.         4. Send the following grouped request to the FTAM Responder.
  1608.             F-BEGIN-GROUP
  1609.             F-SELECT
  1610.             F-OPEN
  1611.             F-END-GROUP
  1612.         5. Send F-READ to FTAM Responder.
  1613.         6. Loop reading F-DATA until F-DATA-END.  As data is received,
  1614.            write the filenames and other useful information from the
  1615.            PDU to the FTP data connection.
  1616.         7. Send F-TRANSFER-END to FTAM Responder.
  1617.         8. Send the following grouped request to the FTAM responder.
  1618.             F-BEGIN-GROUP
  1619.             F-CLOSE
  1620.             F-DESELECT
  1621.             F-END-GROUP
  1622.         9. Translate FTAM Responder <Action Result> and <Diagnostic>
  1623.  
  1624.  
  1625.  
  1626. Mindel & Slaski                                                [Page 29]
  1627.  
  1628. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1629.  
  1630.  
  1631.            parameters to equivalent FTP reply code(s) and send reply
  1632.            code(s) to FTP Client.
  1633.         10. Translate FTP Client reply codes to equivalent FTAM <Action
  1634.            Result> and <Diagnostic> parameters and send parameters to
  1635.            FTAM Responder.
  1636.  
  1637.         Note:
  1638.         a. As per RFC 959 (FTP), the NLST <pathname> argument is a
  1639.            directory.
  1640.         b. Assume the argument is relative to the saved CWD, whether
  1641.            filename or directory specification.
  1642.         c. CWD of the FTAM system must be defined prior to issuance of
  1643.            NLST.
  1644.         d. Transfers over data connection should be in ASCII.
  1645.         e. Gateway should parse full directory/file specifications
  1646.            received from FTAM Responder to strip off directory
  1647.            portion.  This is required to support the "FTP multiple
  1648.            get" function that pipes NLST output to the STOR command.
  1649.  
  1650. 8.1.13. NOOP
  1651.  
  1652.         1. Return a 200 reply code to FTP Client.
  1653.  
  1654. 8.1.14. PASS
  1655.  
  1656.         1. Set <Filestore Password> parameter for F-INITIALIZE.
  1657.         2. If <Called Presentation Address>, <User Identity>, and
  1658.            <Filestore Password> are available, issue F- INITIALIZE to
  1659.            FTAM Responder.
  1660.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1661.            parameters to equivalent FTP reply code(s) and send reply
  1662.            code(s) to FTP Client.
  1663.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1664.            Result> and <Diagnostic> parameters and send parameters to
  1665.            FTAM Responder.
  1666.  
  1667. 8.1.15. PASV
  1668.  
  1669.         1. Wait for data transfer on default data port or data port
  1670.            specified by PORT command.
  1671.         2. Return a 200 reply code to FTP Client.
  1672.  
  1673. 8.1.16. PORT
  1674.  
  1675.         1. Return a 200 reply code to FTP Client.
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682. Mindel & Slaski                                                [Page 30]
  1683.  
  1684. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1685.  
  1686.  
  1687. 8.1.17. PWD
  1688.  
  1689.         1. If there is a saved CWD string, return it to the FTP client
  1690.            and proceed to step 4.
  1691.         2. Set <Contents Type> attribute to "NBS-9".
  1692.         3. Send the following grouped request to FTAM Responder.
  1693.             F-BEGIN-GROUP
  1694.             F-SELECT
  1695.             F-READ-ATTRIBUTES
  1696.             F-DESELECT
  1697.             F-END-GROUP
  1698.         4. Return the current directory name to the FTP client.
  1699.         5. Translate FTAM Responder <Action Result> and <Diagnostic>
  1700.            parameters to equivalent FTP reply code(s) and send reply
  1701.            code(s) to FTP Client.
  1702.         6. Translate FTP Client reply codes to equivalent FTAM <Action
  1703.            Result> and <Diagnostic> parameters and send parameters to
  1704.            FTAM Responder.
  1705.  
  1706. 8.1.18. QUIT
  1707.  
  1708.         1. If user is not logged in, proceed to step 5.
  1709.         2. If file transfer is in progress, send F-P-ABORT or
  1710.            F-U-ABORT to FTAM Responder.
  1711.         3. If file transfer is not in progress, send and F-TERMINATE
  1712.            to FTAM Responder.
  1713.         4. Return charge information to FTP Client.
  1714.         5. Translate FTAM Responder <Action Result> and <Diagnostic>
  1715.            parameters to equivalent FTP reply code(s) and send reply
  1716.            code(s) to FTP Client.
  1717.         6. Translate FTP Client reply codes to equivalent FTAM <Action
  1718.            Result> and <Diagnostic> parameters and send parameters to
  1719.            FTAM Responder.
  1720.  
  1721. 8.1.19. REIN
  1722.  
  1723.         1. Flush all I/O and account information.
  1724.         2. Allow all transfers in progress to be completed.
  1725.         3. Set all parameters to default values.
  1726.         4. Send F-CANCEL to FTAM Responder.
  1727.         5. Send the following grouped request to FTAM Responder.
  1728.             F-BEGIN-GROUP
  1729.             F-CLOSE
  1730.             F-DESELECT
  1731.             F-END-GROUP
  1732.         6. Leave the control connection open.
  1733.         7. Translate FTAM Responder <Action Result> and <Diagnostic>
  1734.            parameters to equivalent FTP reply code(s) and send reply
  1735.  
  1736.  
  1737.  
  1738. Mindel & Slaski                                                [Page 31]
  1739.  
  1740. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1741.  
  1742.  
  1743.            code(s) to FTP Client.
  1744.         8. Translate FTP Client reply codes to equivalent FTAM <Action
  1745.            Result> and <Diagnostic> parameters and send parameters to
  1746.            FTAM Responder.
  1747.  
  1748.         Note:
  1749.         a. Typically followed by a USER command.
  1750.  
  1751. 8.1.20. REST
  1752.  
  1753.         1. Send F-CHECK to FTAM Responder.
  1754.         2. Send F-RESTART to FTAM Responder.
  1755.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1756.            parameters to equivalent FTP reply code(s) and send reply
  1757.            code(s) to FTP Client.
  1758.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1759.            Result> and <Diagnostic> parameters and send parameters to
  1760.            FTAM Responder.
  1761.  
  1762.         Notes:
  1763.         a. Will only have affect on FTAM Responder if the restart
  1764.            functional unit is negotiated on F-INITIALIZE.
  1765.         b. Refer to ISO 8571-3 for additional subtleties of FTAM
  1766.            checkpoint and restart.
  1767.  
  1768. 8.1.21. RETR
  1769.  
  1770.         1. Save current pathname by appending saved CWD string with
  1771.            <pathname> argument.  If no saved CWD string, proceed to
  1772.            step 9.
  1773.         2. Set <Contents Type> parameter to appropriate type of file.
  1774.         3. Send the following grouped request to the FTAM Responder.
  1775.             F-BEGIN-GROUP
  1776.             F-SELECT
  1777.             F-OPEN
  1778.             F-END-GROUP
  1779.         4. If file does not exist, proceed to step 9.
  1780.         5. Send F-READ to FTAM Responder.
  1781.         6. Loop reading F-DATA until F-DATA-END.  As data is received,
  1782.            write it to the FTP data connection.
  1783.         7. Send F-TRANSFER-END to FTAM Responder.
  1784.         8. Send the following grouped request to the FTAM Responder.
  1785.             F-BEGIN-GROUP
  1786.             F-CLOSE
  1787.             F-DESELECT
  1788.             F-END-GROUP
  1789.         9. Translate FTAM Responder <Action Result> and <Diagnostic>
  1790.            parameters to equivalent FTP reply code(s) and send reply
  1791.  
  1792.  
  1793.  
  1794. Mindel & Slaski                                                [Page 32]
  1795.  
  1796. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1797.  
  1798.  
  1799.            code(s) to FTP Client.
  1800.         10. Translate FTP Client reply codes to equivalent FTAM <Action
  1801.             Result> and <Diagnostic> parameters and send parameters to
  1802.             FTAM Responder.
  1803.  
  1804.         Note:
  1805.         a. <pathname> argument is assumed to be a filename, relative
  1806.            to the currently saved CWD.
  1807.         b. CWD of the FTAM system must be defined prior to issuance of
  1808.            RETR.
  1809.  
  1810. 8.1.22. RMD
  1811.  
  1812.         1. Return a 502 reply code (Command not implemented) to the
  1813.            FTP Client.
  1814.  
  1815.         Note:
  1816.         a. As indicated in the NIST Stable Implementation Agreements
  1817.            for FTAM [NIST92], creation or deletion of NBS-9 files is
  1818.            outside the scope of the agreements.
  1819.  
  1820. 8.1.23. RNFR
  1821.  
  1822.         1. Save current pathname by appending saved CWD string with
  1823.            <pathname> argument.  If no saved CWD string, proceed to
  1824.            step 3.
  1825.         2. Send the following grouped request to the FTAM Responder.
  1826.             F-BEGIN-GROUP
  1827.             F-SELECT
  1828.                 Get <Filename> parameter value from RNFR <pathname>
  1829.            argument.
  1830.             F-DESELECT
  1831.             F-END-GROUP
  1832.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1833.            parameters to equivalent FTP reply code(s) and send reply
  1834.            code(s) to FTP Client.
  1835.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1836.            Result> and <Diagnostic> parameters and send parameters to
  1837.            FTAM Responder.
  1838.  
  1839.         Note:
  1840.         a. <pathname> argument is assumed to be a filename, relative
  1841.            to the currently saved CWD.
  1842.         b. Together with RNTO, this command causes a file to be
  1843.            renamed.
  1844.         c. CWD of the FTAM system must be defined prior to issuance of
  1845.            RNFR.
  1846.  
  1847.  
  1848.  
  1849.  
  1850. Mindel & Slaski                                                [Page 33]
  1851.  
  1852. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1853.  
  1854.  
  1855. 8.1.24. RNTO
  1856.  
  1857.         1. Save current pathname by appending saved CWD string with
  1858.            <pathname> argument.  If no saved CWD string, proceed to
  1859.            step 3.
  1860.         2. Send the following grouped request to the FTAM Responder.
  1861.             F-BEGIN-GROUP
  1862.             F-SELECT
  1863.             F-CHANGE-ATTRIBUTES
  1864.                 Get <Filename> parameter from arguments provided by
  1865.                 RNTO and previous RNFR.
  1866.             F-DESELECT
  1867.             F-END-GROUP
  1868.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1869.            parameters to equivalent FTP reply code(s) and send reply
  1870.            code(s) to FTP Client.
  1871.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1872.            Result> and <Diagnostic> parameters and send parameters to
  1873.            FTAM Responder.
  1874.  
  1875.         Note:
  1876.         a. <pathname> argument is assumed to be a filename, relative
  1877.            to the currently saved CWD.
  1878.         b. Together with RNFR, this command causes a file to be
  1879.            renamed.
  1880.         c. CWD of the FTAM system must be defined prior to issuance of
  1881.            RNTO.
  1882.  
  1883. 8.1.25. SITE
  1884.  
  1885.         1. Save the specified destination address information.
  1886.         2. Set the <Called Presentation Address> parameter value equal
  1887.            to the <string> argument.  This parameter will be used when
  1888.            the F-INITIALIZE is sent to the FTAM Responder.
  1889.         3. Translate FTAM Responder <Action Result> and <Diagnostic>
  1890.            parameters to equivalent FTP reply code(s) and send reply
  1891.            code(s) to FTP Client.
  1892.         4. Translate FTP Client reply codes to equivalent FTAM <Action
  1893.            Result> and <Diagnostic> parameters and send parameters to
  1894.            FTAM Responder.
  1895.  
  1896.         Note:
  1897.         a. The <string> argument to the SITE command may include a
  1898.            Distinguished Name or a User Friendly Name.
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906. Mindel & Slaski                                                [Page 34]
  1907.  
  1908. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1909.  
  1910.  
  1911. 8.1.26. SMNT
  1912.  
  1913.         1. Return a 502 reply code to FTP Client.
  1914.  
  1915.         Note:
  1916.         a. Argument is ignored.
  1917.  
  1918. 8.1.27. STAT
  1919.  
  1920.         1. Provide the gateway session status to the FTP Client.
  1921.         2. Return a 211 reply code to FTP Client.
  1922.  
  1923.         Note:
  1924.         a. Argument is ignored.
  1925.  
  1926. 8.1.28. STOR
  1927.  
  1928.         1. Save current pathname by appending saved CWD string with
  1929.            <pathname> argument.  If no saved CWD string, proceed to
  1930.            step 11.
  1931.         2. Send the following grouped request to FTAM Responder.
  1932.             F-BEGIN-GROUP
  1933.             F-SELECT
  1934.             F-READ-ATTRIBUTES
  1935.                 Save <Contents Type> parameter value
  1936.             F-DESELECT
  1937.             F-END-GROUP
  1938.         3. If the <Contents Type> parameter returned with the F-READ-
  1939.            ATTRIBUTES indicates a directory,  proceed to step 11.
  1940.         4. Send the following grouped request to the FTAM responder.
  1941.             F-BEGIN-GROUP
  1942.             F-CREATE
  1943.                 Set the <Override> parameter in the F-CREATE to
  1944.                 "Delete and create with new attributes.".
  1945.             F-OPEN
  1946.             F-END-GROUP
  1947.         5. If the file existed, set the <Contents Type> parameter in
  1948.            the F-CREATE to match the F-READ-ATTRIBUTES.  If the file
  1949.            did not exist, set the <Contents Type> parameter to
  1950.            "FTAM-1".  If TYPE "Image" was previously requested, set
  1951.            the <Contents Type> parameter to "FTAM-3".
  1952.         6. Send F-WRITE, with <Bulk Data Transfer Specification, FADU
  1953.            Operation> parameter set to "File Extend", to FTAM Responder.
  1954.         7. Loop reading data from FTP data connection, sending the
  1955.            data in F-DATA PDUs until end-of-file on the FTP
  1956.            connection.
  1957.         8. Send F-DATA-END to FTAM Responder.
  1958.         9. Send F-TRANSFER-END to FTAM Responder.
  1959.  
  1960.  
  1961.  
  1962. Mindel & Slaski                                                [Page 35]
  1963.  
  1964. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  1965.  
  1966.  
  1967.         10. Send the following grouped request to the FTAM Responder.
  1968.             F-BEGIN-GROUP
  1969.             F-CLOSE
  1970.             F-DESELECT
  1971.             F-END-GROUP
  1972.         11. Translate FTAM Responder <Action Result> and <Diagnostic>
  1973.             parameters to equivalent FTP reply code(s) and send reply
  1974.             code(s) to FTP Client.
  1975.         12. Translate FTP Client reply codes to equivalent FTAM
  1976.             <Action Result> and <Diagnostic> parameters and send
  1977.             parameters to FTAM Responder.
  1978.  
  1979.         Note:
  1980.         a. <pathname> argument is assumed to be a filename, relative
  1981.            to the currently saved CWD.
  1982.         b. CWD of the FTAM system must be defined prior to issuance of
  1983.            STOR.
  1984.  
  1985. 8.1.29. STOU
  1986.  
  1987.         1. Save current pathname by appending saved CWD string with
  1988.            <pathname> argument.  If no saved CWD string, proceed to
  1989.            step 11.
  1990.         2. Send the following grouped request to FTAM Responder.
  1991.             F-BEGIN-GROUP
  1992.             F-SELECT
  1993.             F-READ-ATTRIBUTES
  1994.                 Save <Contents Type> parameter value
  1995.             F-DESELECT
  1996.             F-END-GROUP
  1997.         3. If the file already exists, proceed to step 12.
  1998.         4. If the <Contents Type> parameter returned with the F-READ-
  1999.            ATTRIBUTES indicates a directory, proceed to step 11.
  2000.         5. Send the following grouped request to the FTAM responder.
  2001.             F-BEGIN-GROUP
  2002.             F-CREATE
  2003.                 Set the <Override> parameter in the F-CREATE to
  2004.                 "Delete and create with new attributes.".
  2005.             F-OPEN
  2006.             F-END-GROUP
  2007.         6. If the file existed, set the <Contents Type> parameter in
  2008.            the F-CREATE to match the F-READ-ATTRIBUTES.  If the file
  2009.            did not exist, set the <Contents Type> parameter to
  2010.            "FTAM-1".  If TYPE "Image" was previously requested, set
  2011.            the <Contents Type> parameter to "FTAM-3".
  2012.         7. Send F-WRITE, with <Bulk Data Transfer Specification, FADU
  2013.            Operation> parameter set to "File Extend", to FTAM Responder.
  2014.         8. Loop reading data from FTP data connection, sending the
  2015.  
  2016.  
  2017.  
  2018. Mindel & Slaski                                                [Page 36]
  2019.  
  2020. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2021.  
  2022.  
  2023.            data in F-DATA PDUs until end-of-file on the FTP
  2024.            connection.
  2025.         9. Send F-DATA-END to FTAM Responder.
  2026.         10. Send F-TRANSFER-END to FTAM Responder.
  2027.         11. Send the following grouped request to the FTAM Responder.
  2028.             F-BEGIN-GROUP
  2029.             F-CLOSE
  2030.             F-DESELECT
  2031.             F-END-GROUP
  2032.         12. Translate FTAM Responder <Action Result> and <Diagnostic>
  2033.             parameters to equivalent FTP reply code(s) and send reply
  2034.             code(s) to FTP Client.
  2035.         13. Translate FTP Client reply codes to equivalent FTAM
  2036.             <Action Result> and <Diagnostic> parameters and send
  2037.             parameters to FTAM Responder.
  2038.  
  2039.         Note:
  2040.         a. <pathname> argument is assumed to be a filename, relative
  2041.            to the currently saved CWD.
  2042.         b. Same as STOR, except the name of the created file must be
  2043.            unique in that directory.
  2044.         c. CWD of the FTAM system must be defined prior to issuance of
  2045.            STOU.
  2046.  
  2047. 8.1.30. STRU
  2048.  
  2049.         1. If <structure code> argument is not "File", return 504
  2050.            reply code to FTP Client; Otherwise return 200 reply code
  2051.            to FTP Client.
  2052.  
  2053. 8.1.31. SYST
  2054.  
  2055.         1. Return 502 reply code to FTP client.
  2056.  
  2057. 8.1.32. TYPE
  2058.  
  2059.         1. If no <type code> argument is provided, set <Contents Type>
  2060.            parameter equal to "FTAM-1".
  2061.         2. If argument is provided, and equal to "ASCII", set <Contents
  2062.            Type> parameter to "FTAM-1".
  2063.         3. If argument is provided, and equal to "Image", set <Contents
  2064.            Type> parameter to "FTAM-3".
  2065.         4. Translate FTAM Responder <Action Result> and <Diagnostic>
  2066.            parameters to equivalent FTP reply code(s) and send reply
  2067.            code(s) to FTP Client.
  2068.         5. Translate FTP Client reply codes to equivalent FTAM <Action
  2069.            Result> and <Diagnostic> parameters and send parameters to
  2070.            FTAM Responder.
  2071.  
  2072.  
  2073.  
  2074. Mindel & Slaski                                                [Page 37]
  2075.  
  2076. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2077.  
  2078.  
  2079.         Note:
  2080.         a. Default to ASCII if no <type code> argument is provided.
  2081.  
  2082. 8.1.33. USER
  2083.  
  2084.         1. Set <Initiator Identity> parameter for issuing F-INITIALIZE
  2085.            to FTAM Responder.
  2086.         2. If the destination address was specified in the Domain Name
  2087.            used to attach to the gateway, use it to set the value of
  2088.            the <Called Presentation Address> parameter of the
  2089.            to-be-issued F-INITIALIZE command.
  2090.         3. If the destination address is not known, check if it was
  2091.            specified in a previously issued SITE command.  If
  2092.            available, set <Called Presentation Address> parameter for
  2093.            issuing F-INITIALIZE to FTAM Responder.
  2094.         4. If the destination address is still not available, check if
  2095.            it is encoded in the user identity (e.g., user@host). If
  2096.            encoded, set <Called Presentation Address> parameter for
  2097.            issuing F-INITIALIZE to FTAM Responder using the "host"
  2098.            portion.
  2099.         5. If no destination address is available, proceed to step 7.
  2100.         6. Prompt user for password.
  2101.         7. Translate FTAM Responder <Action Result> and <Diagnostic>
  2102.            parameters to equivalent FTP reply code(s) and send reply
  2103.            code(s) to FTP Client.
  2104.         8. Translate FTP Client reply codes to equivalent FTAM <Action
  2105.            Result> and <Diagnostic> parameters and send parameters to
  2106.            FTAM Responder.
  2107.  
  2108.         Note:
  2109.         a. A USER command should be acceptable in any state.
  2110.         b. Multiple mechanisms are available for specifying the
  2111.            destination address: 1) Domain Name used in connecting to
  2112.            gateway (see section 4, Use of Gateway Services); 2) SITE
  2113.            command argument; and 3) user@host format.
  2114.  
  2115. 8.2. FTAM-Initiated Gateway Service
  2116.  
  2117.    The protocol mapping between FTP and FTAM may be one-to-zero (i.e.,
  2118.    not mappable), one-to-one, or one-to-many.
  2119.  
  2120.    The general steps taken by the FTP-FTAM gateway to provide the FTAM-
  2121.    Initiated service are:
  2122.  
  2123.         1. Accept an FTAM Initiator request at the FTAM Responder side
  2124.            of the gateway.
  2125.  
  2126.         2. Map the request to the (set of) corresponding FTP Client
  2127.  
  2128.  
  2129.  
  2130. Mindel & Slaski                                                [Page 38]
  2131.  
  2132. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2133.  
  2134.  
  2135.            function(s).
  2136.  
  2137.         3. Acting as an FTP Client, send the FTP Client function(s) to
  2138.            the FTP Server.
  2139.  
  2140.         4. Accept information returned to the FTP Client side of the
  2141.            gateway.  This information originated at the FTP Server.
  2142.  
  2143.         5. Map this returned information to a form understood by the
  2144.            FTAM Responder side of the gateway.
  2145.  
  2146.         6. Send this returned information from the FTAM Responder side
  2147.            of the gateway to the FTAM Initiator.
  2148.  
  2149.    For each FTAM protocol function, the FTP protocol functions required
  2150.    to map it are identified:
  2151.  
  2152.       FTAM                FTP
  2153.  
  2154.       -----------------------------------------------------------------
  2155.  
  2156.       F-BEGIN-GROUP       none
  2157.  
  2158.       F-CANCEL            ABOR
  2159.  
  2160.       F-CHANGE-ATTRIBUTE  RNFR, RNTO
  2161.  
  2162.       F-CHECK             none
  2163.  
  2164.       F-CLOSE             none
  2165.  
  2166.       F-CREATE            STOR
  2167.  
  2168.       F-DATA              ALLO, STOR or RETR or APPE
  2169.  
  2170.       F-DATA-END          none
  2171.  
  2172.       F-DELETE            DELE
  2173.  
  2174.       F-DESELECT          none
  2175.  
  2176.       F-END-GROUP         STAT
  2177.  
  2178.       F-ERASE             DELE
  2179.  
  2180.       F-INITIALIZE        ACCT, PASS, USER
  2181.  
  2182.       F-LOCATE            none
  2183.  
  2184.  
  2185.  
  2186. Mindel & Slaski                                                [Page 39]
  2187.  
  2188. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2189.  
  2190.  
  2191.       F-OPEN              MODE, STRU, TYPE
  2192.  
  2193.       F-READ              MODE, NLST, RETR, TYPE
  2194.  
  2195.       F-READ-ATTRIBUTE    LIST
  2196.  
  2197.       F-RECOVER           REST
  2198.  
  2199.       F-RESTART           ABOR, REST
  2200.  
  2201.       F-SELECT            LIST
  2202.  
  2203.       F-TERMINATE         QUIT
  2204.  
  2205.       F-TRANSFER          none
  2206.  
  2207.       F-P-ABORT           QUIT
  2208.  
  2209.       F-U-ABORT           QUIT
  2210.  
  2211.       F-WRITE             APPE or STOR, NOOP
  2212.  
  2213.    The remainder of this section presents detailed mapping procedures
  2214.    for each of the FTAM protocol functions.  Where appropriate, each
  2215.    FTAM service primitive is followed by those parameters that are
  2216.    relevant to the mapping.  Gateway support for these mappings is
  2217.    required.
  2218.  
  2219. 8.2.1. F-BEGIN-GROUP REQ
  2220.  
  2221.         1. Send F-BEGIN-GROUP RESP PDU to FTAM Initiator signifying
  2222.            that processes are available to handle concatenated
  2223.            requests.
  2224.  
  2225. 8.2.2. F-CANCEL REQ
  2226.  
  2227.         1. Close FTP data connection.
  2228.         2. Send ABOR to FTP Server.
  2229.         3. Translate FTP Server reply code to equivalent FTAM
  2230.            Responder action and diagnostic parameters and send
  2231.            parameters to FTAM Initiator via F-CANCEL RESP PDU.
  2232.         4. Translate FTAM Initiator action and diagnostic parameters
  2233.            to equivalent FTP reply codes and send reply codes to FTP
  2234.            Server.
  2235.  
  2236.         Note:
  2237.         a. F-U-ABORT REQ is a viable alternative to F-CANCEL REQ.
  2238.         b. Note that since ABOR is not implemented by all FTP Servers,
  2239.  
  2240.  
  2241.  
  2242. Mindel & Slaski                                                [Page 40]
  2243.  
  2244. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2245.  
  2246.  
  2247.            the remote file may be corrupted, though accessible.
  2248.  
  2249. 8.2.3. F-CHANGE-ATTRIBUTE REQ
  2250.  
  2251.         1. Get original filename from <Filename> parameter and send it
  2252.            with an RNFR to the FTP Server.
  2253.         2. Get new filename from <Filename> parameter and send it with
  2254.            an RNTO to the FTP Server.
  2255.         3. Translate FTP Server reply code to equivalent FTAM
  2256.            Responder action and diagnostic parameters and send
  2257.            parameters to FTAM Initiator via F-CHANGE-ATTRIBUTE RESP
  2258.            PDU.
  2259.         4. Translate FTAM Initiator action and diagnostic parameters
  2260.            to equivalent FTP reply codes and send reply codes to FTP
  2261.            Server.
  2262.  
  2263.         Note:
  2264.         a. Allow for processing an arbitrary number attributes at one
  2265.            time.
  2266.         b. Allow for responses of "Attribute currently unavailable for
  2267.            change" and "Attribute not currently supported".
  2268.         c. At a minimum, support the <Filename>, <Permitted Actions>,
  2269.            and <Contents Type> parameters.
  2270.  
  2271. 8.2.4. F-CHECK REQ
  2272.  
  2273.         1. Send an F-CHECK RESP PDU to the FTAM Initiator.
  2274.  
  2275. 8.2.5. F-CLOSE REQ
  2276.  
  2277.         1. Send F-CLOSE RESP PDU , with <Action Result> parameter
  2278.            value of "Success", to FTAM Initiator.
  2279.  
  2280.         Note:
  2281.         a. If an error had occurred during transfer, it would have
  2282.            been noted before the F-CLOSE REQ.
  2283.  
  2284. 8.2.6. F-CREATE REQ
  2285.  
  2286.         1. Send STOR and zero data bytes to FTP Server.
  2287.         2. Translate FTP Server reply code to equivalent FTAM
  2288.            Responder <Action Result> and <Diagnostic> parameters and
  2289.            send parameters to FTAM Initiator.
  2290.         3. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2291.            parameters to equivalent FTP reply codes and send reply
  2292.            codes to FTP Server.
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298. Mindel & Slaski                                                [Page 41]
  2299.  
  2300. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2301.  
  2302.  
  2303. 8.2.7. F-DATA PDU
  2304.  
  2305.         1. If necessary, send ALLO command to FTP Server.
  2306.         2. Depending on whether reading or writing, send STOR, RETR,
  2307.            or APPE command to FTP Server.
  2308.         3. Translate FTP Server reply code to equivalent FTAM
  2309.            Responder <Action Result> and <Diagnostic> parameters and
  2310.            send parameters to FTAM Initiator.
  2311.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2312.            parameters to equivalent FTP reply codes and send reply
  2313.            codes to FTP Server.
  2314.  
  2315.         Note:
  2316.         a. The use of an FTP command may be unnecessary.  Sending the
  2317.            data on the data connection may be adequate.
  2318.  
  2319. 8.2.8. F-DATA-END REQ
  2320.  
  2321.         1. Close the data connection.
  2322.         2. Save mandatory Diagnostic parameter for later use.
  2323.         3. Translate FTP Server reply code to equivalent FTAM
  2324.            Responder <Action Result> and <Diagnostic> parameters and
  2325.            send parameters to FTAM Initiator.
  2326.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2327.            parameters to equivalent FTP reply codes and send reply
  2328.            codes to FTP Server.
  2329.  
  2330. 8.2.9. F-DELETE REQ
  2331.  
  2332.         1. Send DELE to FTP server.
  2333.         2. Translate FTP Server reply code to equivalent FTAM
  2334.            Responder <Action Result> and <Diagnostic> parameters and
  2335.            send parameters to FTAM Initiator via F-DELETE RESP PDU.
  2336.         3. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2337.            parameters to equivalent FTP reply codes and send reply
  2338.            codes to FTP Server.
  2339.  
  2340. 8.2.10. F-DESELECT REQ
  2341.  
  2342.         1. Return F-DESELECT RESP PDU, with <Action Result> parameter
  2343.            value of "Success", to FTAM Initiator.
  2344.  
  2345. 8.2.11. F-END-GROUP REQ
  2346.  
  2347.         1. Send STAT command sequence to FTP Server.
  2348.         2. Translate FTP Server reply code to equivalent FTAM
  2349.            Responder <Action Result> and <Diagnostic>
  2350.            parameters and send parameters to FTAM Initiator via F-END
  2351.  
  2352.  
  2353.  
  2354. Mindel & Slaski                                                [Page 42]
  2355.  
  2356. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2357.  
  2358.  
  2359.            GROUP RESP.
  2360.         3. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2361.            parameters to equivalent FTP reply codes and send reply
  2362.            codes to FTP Server.
  2363.  
  2364. 8.2.12. F-ERASE REQ
  2365.  
  2366.         1. Send DELE to FTP Server.
  2367.         2. Translate FTP Server reply code to equivalent FTAM
  2368.            Responder <Action Result> and <Diagnostic> parameters and
  2369.            send parameters to FTAM Initiator via F-ERASE RESP PDU.
  2370.         3. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2371.            parameters to equivalent FTP reply codes and send reply
  2372.            codes to FTP Server.
  2373.  
  2374. 8.2.13. F-INITIALIZE REQ
  2375.  
  2376.         1. Establish initial area for activity attributes.
  2377.         2. Save <Responding Presentation Address>, <Initiator
  2378.            Identity>, and <Filestore Password> parameter values
  2379.            received from FTAM Initiator.
  2380.         3. If the destination address was specified in the
  2381.            Distinguished Name (or User Friendly Name) used to attach
  2382.            to the gateway, save it as the ultimate destination
  2383.            address.
  2384.         4. If the ultimate destination address is not yet known, look
  2385.            at the "@host" portion of the <Initiator Identity>
  2386.            parameter for the ultimate destination parameter.
  2387.         5. If the ultimate destination address is still not known,
  2388.            check if it is available in the <Responding Presentation
  2389.            Address> parameter.
  2390.         6. Get userid from <Initiator Identity> and send it with USER
  2391.            command to FTP Server.
  2392.         7. Get password from <Filestore Password> and send it with
  2393.            PASS command to FTP Server.
  2394.         8. If necessary, send ACCT command to FTP Server.
  2395.         9. Negotiate acceptance of mandatory functional units, service
  2396.            classes, service types, presentation contexts, and
  2397.            attribute groups.
  2398.         10. Accept context management functional unit passed by
  2399.             Presentation service provider.
  2400.         11. Translate FTP Server reply code to equivalent FTAM
  2401.             Responder <Action Result> and <Diagnostic> parameters and
  2402.             send parameters to FTAM Initiator via F-INIT RESP PDU.
  2403.         12. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2404.             parameters to equivalent FTP reply codes and send reply
  2405.             codes to FTP Server.
  2406.  
  2407.  
  2408.  
  2409.  
  2410. Mindel & Slaski                                                [Page 43]
  2411.  
  2412. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2413.  
  2414.  
  2415.         Note:
  2416.         a. Multiple mechanisms are available for specifying the
  2417.            destination address: 1) Distinguished Name, or User
  2418.            Friendly Name, used in connecting to the gateway (see
  2419.            section 4, Use of Gateway Services); 2) user@host format;
  2420.            and 3) Inclusion as <Responding Presentation Address>
  2421.            parameter value.
  2422.  
  2423. 8.2.14. F-LOCATE REQ
  2424.  
  2425.         Note:
  2426.         a. Not supported since FTAM-1 and FTAM-3 don't support this
  2427.            primitive.
  2428.  
  2429. 8.2.15. F-OPEN REQ
  2430.  
  2431.         1. Get <Contents Type> and <Processing Mode> parameter values
  2432.            from FTAM Initiator.
  2433.         2. Send TYPE command to FTP Server.
  2434.         3. Send MODE command to FTP Server.
  2435.         4. Send STRU command to FTP Server.
  2436.         5. Translate FTP Server reply code to equivalent FTAM
  2437.            Responder <Action Result> and <Diagnostic>
  2438.            parameters and send parameters to FTAM Initiator via F-OPEN
  2439.            RESP PDU.
  2440.         6. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2441.            parameters to equivalent FTP reply codes and send reply
  2442.            codes to FTP Server.
  2443.  
  2444.         Note:
  2445.         a. Establishes definite value for presentation context name
  2446.            parameter for this data transfer.
  2447.         b. Assumes that the <Requested Access> parameter is permitted.
  2448.  
  2449. 8.2.16. F-READ REQ
  2450.  
  2451.         1. If requested file type and file mode are different than
  2452.            current settings, send TYPE and MODE to FTP Server.
  2453.         2. If <Contents Type> is FTAM-1 or FTAM-3, then send RETR to
  2454.            FTP Server.
  2455.         3. If <Contents Type> is "NBS-9", then send NLST to FTP
  2456.            Server.
  2457.         4. If reply code from FTP Server is 1xx, open FTP data
  2458.            connection and loop until End-of-File is read on FTP data
  2459.            connection.  Inside loop, read block from FTP data
  2460.            connection, format FTAM DATA PDU, and send FTAM PDU to FTAM
  2461.            Initiator.  At End-of-File on FTP data connection, send
  2462.            F-DATA-END and return.
  2463.  
  2464.  
  2465.  
  2466. Mindel & Slaski                                                [Page 44]
  2467.  
  2468. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2469.  
  2470.  
  2471.         5. If reply code from FTP Server is not 1xx, send F-CANCEL REQ
  2472.            to FTAM Initiator.
  2473.         6. Translate FTP Server reply code to equivalent FTAM
  2474.            Responder <Action Result> and <Diagnostic> parameters and
  2475.            send parameters to FTAM Initiator via F-READ RESP PDU.
  2476.         7. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2477.            parameters to equivalent FTP reply codes and send reply
  2478.            codes to FTP Server.
  2479.  
  2480.         Note:
  2481.         a. To send NLST response, TYPE must be ASCII.
  2482.  
  2483. 8.2.17. F-READ-ATTRIBUTE REQ
  2484.  
  2485.         1. Send LIST to FTP Server.
  2486.         2. Translate returned information into the <Filename>,
  2487.            <Contents Type>, and <Permitted Actions> parameter values
  2488.            and return them to the FTAM Initiator.
  2489.         3. Translate FTP Server reply code to equivalent FTAM
  2490.            Responder <Action Result> and <Diagnostic> parameters and
  2491.            send parameters to FTAM Initiator via F-READ-ATTRIBUTE RESP
  2492.            PDU.
  2493.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2494.            parameters to equivalent FTP reply codes and send reply
  2495.            codes to FTP Server.
  2496.  
  2497. 8.2.18. F-RECOVER REQ
  2498.  
  2499.         1. Send REST command to FTP Server.
  2500.         2. Translate FTP Server reply code to equivalent FTAM
  2501.            Responder <Action Result> and <Diagnostic> parameters and
  2502.            send parameters to FTAM Initiator.
  2503.         3. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2504.            parameters to equivalent FTP reply codes and send reply
  2505.            codes to FTP Server.
  2506.  
  2507.         Note:
  2508.         a. Regime recovery is only possible if the <Recovery
  2509.            Functional Unit> parameter was negotiated previously by an
  2510.            F-INITIALIZE.
  2511.  
  2512. 8.2.19. F-RESTART REQ
  2513.  
  2514.         1. To interrupt any bulk data transfer in progress, send ABOR
  2515.            to FTP Server.
  2516.         2. To negotiate the point at which data transfer is to be
  2517.            restarted, get <Checkpoint Identifier> parameter from FTAM
  2518.            Initiator and send it with REST to FTP Server.
  2519.  
  2520.  
  2521.  
  2522. Mindel & Slaski                                                [Page 45]
  2523.  
  2524. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2525.  
  2526.  
  2527.         3. Translate FTP Server reply code to equivalent FTAM
  2528.            Responder <Action Result> and <Diagnostic> parameters and
  2529.            send parameters to FTAM Initiator via F-RESTART RESP PDU.
  2530.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2531.            parameters to equivalent FTP reply codes and send reply
  2532.            codes to FTP Server.
  2533.  
  2534. 8.2.20. F-SELECT REQ
  2535.  
  2536.         1. Get <Filename> parameter and send with LIST command to FTP
  2537.            Server to determine whether  or not the file exists.
  2538.         2. If file exists, compare the POSIX file access rights with
  2539.            the <Requested Access> parameter sent by the FTAM
  2540.            Initiator.  If the access rights match, return <Action
  2541.            Result> parameter value of "Success", otherwise return
  2542.            <Action Result> parameter value of "Failure".
  2543.         3. Translate FTP Server reply code to equivalent FTAM
  2544.            Responder <Action Result> and <Diagnostic> parameters and
  2545.            send parameters to FTAM Initiator via F-SELECT RESP PDU.
  2546.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2547.            parameters to equivalent FTP reply codes and send reply
  2548.            codes to FTP Server.
  2549.  
  2550.         Note:
  2551.         a. The specified file is binary/text file if one record is
  2552.            received or is a directory file if multiple records are
  2553.            received.
  2554.  
  2555. 8.2.21. F-TERMINATE REQ
  2556.  
  2557.         1. Send QUIT to FTP Server.
  2558.         2. Translate FTP Server reply code to equivalent FTAM
  2559.            Responder <Action Result> and <Diagnostic> parameters and
  2560.            send parameters to FTAM Initiator via F-TERMINATE RESP PDU.
  2561.         3. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2562.            parameters to equivalent FTP reply codes and send reply
  2563.            codes to FTP Server.
  2564.  
  2565. 8.2.22. F-TRANSFER-END
  2566.  
  2567.         1. Get <Action Result> parameter value from last F-DATA-END
  2568.            and return it to FTAM Initiator as <Action Result>
  2569.            parameter of this F-TRANSFER-END.
  2570.  
  2571. 8.2.23. F-P-ABORT REQ
  2572.  
  2573.         1. Send QUIT to FTP Server.
  2574.         2. Return <Action Result> parameter value of "Permanent Error"
  2575.  
  2576.  
  2577.  
  2578. Mindel & Slaski                                                [Page 46]
  2579.  
  2580. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2581.  
  2582.  
  2583.            to FTAM Initiator.
  2584.         3. Translate FTP Server reply code to equivalent FTAM
  2585.            Responder <Action Result> and <Diagnostic> parameters and
  2586.            send parameters to FTAM Initiator.
  2587.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2588.            parameters to equivalent FTP reply codes and send reply
  2589.            codes to FTP Server.
  2590.  
  2591. 8.2.24. F-U-ABORT REQ
  2592.  
  2593.         1. Send QUIT to FTP Server.
  2594.         2. Return <Action Result> parameter value of "Permanent Error"
  2595.            to FTAM Initiator.
  2596.         3. Translate FTP Server reply code to equivalent FTAM
  2597.            Responder <Action Result> and <Diagnostic> parameters and
  2598.            send parameters to FTAM Initiator.
  2599.         4. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2600.            parameters to equivalent FTP reply codes and send reply
  2601.            codes to FTP Server.
  2602.  
  2603. 8.3. F-WRITE REQ
  2604.  
  2605.         1. Save bulk transfer specification parameter from PDU.
  2606.         2. Send NOOP to FTP Server to receive status information.
  2607.         3. If the <Bulk Data Transfer Specification, FADU Operation>
  2608.            parameter has a value of "File Extend", then send an APPE
  2609.            to the FTP Server, otherwise send a STOR to the FTP Server.
  2610.         4. If reply code from FTP Server is 200, then accept FTP data
  2611.            connection; otherwise send F-CANCEL REQ to FTAM Initiator.
  2612.         5. Translate FTP Server reply code to equivalent FTAM Responder
  2613.            <Action Result> and <Diagnostic> parameters and send
  2614.            parameters to FTAM Initiator.
  2615.         6. Translate FTAM Initiator <Action Result> and <Diagnostic>
  2616.            parameters to equivalent FTP reply codes and send reply
  2617.            codes to FTP Server.
  2618.  
  2619. 9.  Mapping between FTP Reply Codes and FTAM Parameters
  2620.  
  2621.    The focus of the protocol function and representation mappings,
  2622.    presented in the previous sections, is on non-error encumbered
  2623.    processing.  Though appropriate responses are designated in many
  2624.    cases, it is intended that a more thorough use of responses will be
  2625.    incorporated into gateway implementations.
  2626.  
  2627.    The purpose of this section is to provide a set of mappings between
  2628.    FTAM responses (<Action Result> and <Diagnostic>) and FTP responses
  2629.    (reply codes).
  2630.  
  2631.  
  2632.  
  2633.  
  2634. Mindel & Slaski                                                [Page 47]
  2635.  
  2636. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2637.  
  2638.  
  2639.    The <Action Result> parameter of the FTAM File Service primitives
  2640.    conveys information which summarizes that available in the
  2641.    <Diagnostic> parameter.  The value is never less than the most severe
  2642.    diagnostic value.  The valid values of this parameter are "Success",
  2643.    "Transient Error", and "Permanent Error".  The FTP response text
  2644.    should be supplied in the <Further Details> field of the
  2645.    <Diagnostics> sequence in the FTAM response and abort messages.
  2646.  
  2647.    An FTAM <Action Result> "Success" may be accompanied by a
  2648.    <Diagnostic> with value of "Informative Error Type".  These "Success"
  2649.    diagnostic messages are associated with error type 0 in the table
  2650.    below (and in [ISO8571-3]).  Error type 1 indicates a transient
  2651.    error, while type 2 indicates a permanent error.
  2652.  
  2653.    An FTP reply consists of a three digit number followed by some text.
  2654.    The number is defined as a 3-digit code, each digit of which has a
  2655.    special significance.  The first digit conveys approximately the same
  2656.    information as the FTAM <Action Result> parameter; i.e., positive,
  2657.    transient negative, or permanent negative.
  2658.  
  2659.    The FTP specification document [RFC959] explicitly states that the
  2660.    list of reply codes should not be expanded beyond that which is
  2661.    presented in [RFC959].  This requirement is adhered to in the
  2662.    mappings presented in this document.
  2663.  
  2664. 9.1.  FTP Reply Codes to FTAM Parameters
  2665.  
  2666.    This section presents the set of mappings between FTP reply codes and
  2667.    their equivalent FTAM action and diagnostic parameters.  Gateway
  2668.    support for these mappings is recommended, but not required.  The
  2669.    following abbreviations are used for FTAM action parameter values:
  2670.  
  2671.         trans   =    transient error
  2672.         perman  =    permanent error
  2673.  
  2674.       FTP Reply                                    |FTAM Diagnostic
  2675.                                                    |
  2676.                                                    |
  2677.       Code      Text                               |Result   Type Id
  2678.       ---------------------------------------------+------------------
  2679.       110       Restart marker reply               |success  0    0
  2680.       120       Service ready in nnn minutes       |success  0    0
  2681.       125       Data connection open, transfer     |
  2682.                 starting                           |success  0    0
  2683.       150       File status okay; about to open    |
  2684.                 data connection                    |success  0    0
  2685.       200       Command okay                       |success  0    0
  2686.       202       Command not implemented;           |
  2687.  
  2688.  
  2689.  
  2690. Mindel & Slaski                                                [Page 48]
  2691.  
  2692. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2693.  
  2694.  
  2695.                 superfluous                        |success  0    0
  2696.       211       System status, or system help      |
  2697.                 reply                              |success  0    0
  2698.       212       Directory status                   |success  0    0
  2699.       213       File status                        |success  0    0
  2700.       214       Help message                       |success  0    0
  2701.       215       NAME system type                   |success  0    0
  2702.       220       Service ready for new user         |success  0    0
  2703.       221       Service closing control connection |success  0    0
  2704.       225       Data connection; no transfer in    |
  2705.                 progress                           |success  0    0
  2706.       226       Closing data connection            |success  0    0
  2707.       227       Entering passive mode (h1,h2,..)   |success  0    0
  2708.       230       User logged in, proceed            |success  0    0
  2709.       250       Requested file action okay,        |
  2710.                 completed                          |success  0    0
  2711.       257       "PATHNAME" created                 |success  0    0
  2712.       331       User name okay, need password      |success  0    0
  2713.       332       Need account for logon             |success  0    0
  2714.       350       Requested file action pending      |
  2715.                 further information                |success  0    0
  2716.       421       Service not available, closing     |
  2717.                 control connection                 |trans    1    1
  2718.       425       Can't open data connection         |trans    1    3
  2719.       426       Connection closed, transfer        |
  2720.                 aborted                            |trans    1    1014
  2721.       450       Requested file action not taken,   |
  2722.                 file unavailable (e.g., file busy) |trans    1    5041
  2723.       451       Requested file action aborted,     |
  2724.                 local error in processing          |trans    1    5028
  2725.       452       Requested action not taken,        |
  2726.                 insufficient storage space         |trans    1    9
  2727.       500       Syntax error, command unrecognized |perman   2    5015
  2728.       501       Syntax error in parameters or      |
  2729.                 arguments                          |perman   2    4004
  2730.       502       Command not implemented            |perman   2    5016
  2731.       503       Bad sequence of commands           |perman   2    1015
  2732.       504       Command not implemented for that   |
  2733.                 parameter                          |perman   2    4003
  2734.       530       Not logged in                      |perman   2    2020
  2735.       532       Need account for storing files     |perman   2    2008
  2736.       550       Requested action not taken; file   |
  2737.                 unavailable (e.g., file not found, |
  2738.                 no access)                         |perman   2    3013
  2739.       551       Requested action aborted, page     |
  2740.                 type                               |perman   2    5002
  2741.       552       Requested file action aborted,     |
  2742.                 exceeded storage allocation        |perman   2    9
  2743.  
  2744.  
  2745.  
  2746. Mindel & Slaski                                                [Page 49]
  2747.  
  2748. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2749.  
  2750.  
  2751.       553       Requested file action not taken,   |
  2752.                 file name not allowed              |perman   2    3024
  2753.  
  2754. 9.2.  FTAM Parameters to FTP Reply Codes
  2755.  
  2756.    This section presents the set of mappings between FTAM diagnostic
  2757.    parameters and their equivalent FTP reply codes.  Gateway support for
  2758.    these mappings is recommended, but not required.  As previously
  2759.    mentioned, type 0 is an informative error type that may be returned
  2760.    with a "Success" action result, type 1 is a transient error type, and
  2761.    type 2 is a permanent error type.
  2762.  
  2763.  
  2764.       FTAM Diagnostic                                   |FTP Reply Code
  2765.                                                         |
  2766.       Type      Id   Reason                             |
  2767.       --------------------------------------------------+--------
  2768.                                                         |
  2769.       1,2       0    No reason                          |    421
  2770.       0         1    Responder error                    |    211
  2771.       1,2       1    Responder error                    |    421
  2772.       1,2       2    System shutdown                    |    421
  2773.       0         3    FTAM mgmt problem, unspecific      |    211
  2774.       1,2       3    FTAM mgmt problem, unspecific      |    425
  2775.       0         4    FTAM mgmt, bad account             |    221
  2776.       2         4    FTAM mgmt, bad account             |    532
  2777.       0         5    FTAM mgmt, security not passed     |    211
  2778.       2         5    FTAM mgmt, security not passed     |    530
  2779.       0         6    Delay may be encountered           |    211
  2780.       0         7    Initiator error, unspecific        |    211
  2781.       1,2       7    Initiator error, unspecific        |    421
  2782.       0         8    Subsequent error                   |    211
  2783.       1,2       8    Subsequent error                   |    421
  2784.       0         9    Temporal insufficiency of resources|    211
  2785.       1,2       9    Temporal insufficiency of resources|    452
  2786.       1,2       10   Access req. violates VFS security  |    550
  2787.       1,2       11   Access req. violates local security|    550
  2788.       2         1000 Conflicting parameter values       |    504
  2789.       2         1001 Unsupported parameter values       |    504
  2790.       2         1002 Mandatory parameter not set        |    504
  2791.       2         1003 Unsupported parameter              |    504
  2792.       2         1004 Duplicated parameter               |    504
  2793.       2         1005 Illegal parameter type             |    504
  2794.       2         1006 Unsupported parameter types        |    504
  2795.       2         1007 FTAM protocol err., unspecific     |    426
  2796.       2         1008 FTAM protocol err., procedure err  |    426
  2797.       2         1009 FTAM protocol err., funct. unit err|    426
  2798.       2         1010 FTAM protocol err., corruption err.|    426
  2799.  
  2800.  
  2801.  
  2802. Mindel & Slaski                                                [Page 50]
  2803.  
  2804. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2805.  
  2806.  
  2807.       2         1011 Lower layer failure                |    426
  2808.       1,2       1012 Lower layer addressing error       |    426
  2809.       1,2       1013 Timeout                            |    426
  2810.       1,2       1014 System shutdown                    |    426
  2811.       2         1015 Illegal grouping sequence          |    503
  2812.       2         1016 Grouping threshold violation       |    503
  2813.       2         1017 Inconsistent PDU request           |    503
  2814.       2         2000 Association with user not allowed  |    532
  2815.       2         2002 Unsupported service class          |    504
  2816.       0         2003 Unsupported functional unit        |    211
  2817.       2         2003 Unsupported functional unit        |    502
  2818.       0         2004 Attribute group error, unspecific  |    211
  2819.       1,2       2004 Attribute group error, unspecific  |    504
  2820.       2         2005 Attribute group not supported      |    504
  2821.       0         2006 Attribute group not allowed        |    211
  2822.       2         2006 Attribute group not allowed        |    504
  2823.       0         2007 Bad account                        |    211
  2824.       2         2007 Bad account                        |    532
  2825.       0         2008 Association management, unspecific |    211
  2826.       1,2       2008 Association management, unspecific |    532
  2827.       2         2009 Association management, bad address|    532
  2828.       1,2       2010 Association management, bad account|    532
  2829.       0         2011 Checkpoint window error, too large |    211
  2830.       2         2011 Checkpoint window error, too large |    426
  2831.       0         2012 Checkpoint window error, too small |    211
  2832.       2         2012 Checkpoint window error, too small |    426
  2833.       0         2013 Checkpoint window error, unsupp.   |    211
  2834.       2         2013 Checkpoint window error, unsupp.   |    504
  2835.       0         2014 Communications QoS not supported   |    211
  2836.       1,2       2014 Communications QoS not supported   |    504
  2837.       2         2015 Initiator identity unacceptable    |    532
  2838.       0         2016 Context management refused         |    211
  2839.       0         2017 Rollback not available             |    211
  2840.       0         2018 Contents type list cut by          |
  2841.                      responder                          |    211
  2842.       0         2019 Contents type list by              |
  2843.                      Presentation Service               |    211
  2844.       2         2020 Invalid filestore password         |    530
  2845.       2         2021 Incompatible service classes       |    530
  2846.       1,2       3000 Filename not found                 |    550
  2847.       1,2       3001 Selection attributes not matched   |    550
  2848.       2         3002 Initial attributes not possible    |    550
  2849.       2         3003 Bad attribute name                 |    550
  2850.       1,2       3004 Non-existent file                  |    550
  2851.       1,2       3005 File already exists                |    553
  2852.       1,2       3006 File cannot be created             |    553
  2853.       1,2       3007 File cannot be deleted             |    553
  2854.       0         3008 Concurrency control not available  |    211
  2855.  
  2856.  
  2857.  
  2858. Mindel & Slaski                                                [Page 51]
  2859.  
  2860. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2861.  
  2862.  
  2863.       2         3008 Concurrency control not available  |    503
  2864.       0         3009 Concurrency control not supported  |    211
  2865.       2         3009 Concurrency control not supported  |    502
  2866.       0         3010 Concurrency control not possible   |    211
  2867.       2         3010 Concurrency control not possible   |    503
  2868.       0         3011 More restrictive lock              |    211
  2869.       1         3011 More restrictive lock              |    450
  2870.       1,2       3012 File busy                          |    450
  2871.       1,2       3013 File not available                 |    450
  2872.       0         3014 Access control not available       |    211
  2873.       1,2       3014 Access control not available       |    503
  2874.       0         3015 Access control not supported       |    211
  2875.       1,2       3015 Access control not supported       |    502
  2876.       0         3016 Access control inconsistent        |    211
  2877.       1,2       3016 Access control inconsistent        |    503
  2878.       0         3017 Filename truncated                 |    211
  2879.       0         3018 Initial attributes altered         |    211
  2880.       1,2       3019 Bad account                        |    532
  2881.       0         3020 Override selected existing file    |    211
  2882.       0         3021 Override deleted and recreated     |    211
  2883.       0         3022 Create override deleted and        |
  2884.                      recreate file with new attributes  |    211
  2885.       1,2       3023 Create override, not possible      |    553
  2886.       1,2       3024 Ambiguous file specification       |    553
  2887.       2         3025 Invalid create password            |    550
  2888.       2         3026 Invalid delete password on override|    550
  2889.       2         3027 Bad attribute value                |    550
  2890.       2         3028 Requested access violation         |    550
  2891.       2         3029 Functional unit not available for  |    550
  2892.                      requested access                   |
  2893.       0         3030 File created but not selected      |    211
  2894.       1         3030 Invalid create password            |    550
  2895.       0         4000 Attribute non-existent             |    211
  2896.       1,2       4000 Attribute non-existent             |    501
  2897.       1,2       4001 Attribute cannot be read           |    504
  2898.       1,2       4002 Attribute cannot be changed        |    504
  2899.       1,2       4003 Attribute not supported            |    504
  2900.       2         4004 Bad attribute name                 |    501
  2901.       2         4005 Bad attribute value                |    501
  2902.       0         4006 Attribute partially supported      |    211
  2903.       0         4007 Additional set attribute value     |
  2904.                      not distinct                       |    211
  2905.       1,2       5000 Bad FADU, unspecific               |    550
  2906.       2         5001 Bad FADU, size error               |    501
  2907.       2         5002 Bad FADU, type error               |    551
  2908.       2         5003 Bad FADU, poorly specified         |    501
  2909.       2         5004 Bad FADU, bad location             |    550
  2910.       0         5005 FADU does not exist                |    550
  2911.  
  2912.  
  2913.  
  2914. Mindel & Slaski                                                [Page 52]
  2915.  
  2916. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2917.  
  2918.  
  2919.       1         5005 FADU does not exist                |    550
  2920.       0         5006 FADU not available, unspecific     |    550
  2921.       1,2       5006 FADU not available, unspecific     |    550
  2922.       1,2       5007 FADU not available for reading     |    550
  2923.       1,2       5008 FADU not available for writing     |    550
  2924.       1,2       5009 FADU not available for location    |    550
  2925.       1,2       5010 FADU not available for erasure     |    550
  2926.       1,2       5011 FADU cannot be inserted            |    550
  2927.       1,2       5012 FADU cannot be replaced            |    550
  2928.       0         5013 FADU cannot be located             |    550
  2929.       1,2       5013 FADU cannot be located             |    550
  2930.       2         5014 Bad data element type              |    550
  2931.       1,2       5015 Operation not available            |    500
  2932.       1,2       5016 Operation not supported            |    502
  2933.       0         5017 Operation inconsistent             |    211
  2934.       2         5017 Operation inconsistent             |    503
  2935.       0         5018 Concurrency control not available  |    211
  2936.       1,2       5018 Concurrency control not available  |    503
  2937.       0         5019 Concurrency control not supported  |    211
  2938.       2         5019 Concurrency control not supported  |    502
  2939.       0         5020 Concurrency control inconsistent   |    211
  2940.       2         5020 Concurrency control inconsistent   |    503
  2941.       0         5021 Processing mode not available      |    211
  2942.       1,2       5021 Processing mode not available      |    503
  2943.       0         5022 Processing mode not supported      |    211
  2944.       2         5022 Processing mode not supported      |    504
  2945.       0         5023 Processing mode inconsistent       |    211
  2946.       2         5023 Processing mode inconsistent       |    503
  2947.       0         5024 Access context not available       |    211
  2948.       2         5024 Access context not available       |    503
  2949.       0         5025 Access context not supported       |    211
  2950.       2         5025 Access context not supported       |    504
  2951.       1,2       5026 Bad write, unspecific              |    550
  2952.       1,2       5027 Bad read, unspecific               |    550
  2953.       0         5028 Local failure, unspecific          |    211
  2954.       1,2       5028 Local failure, unspecific          |    451
  2955.       0         5029 Local failure, filespace exhausted |    211
  2956.       1,2       5029 Local failure, filespace exhausted |    552
  2957.       0         5030 Local failure, data corrupted      |    211
  2958.       1,2       5030 Local failure, data corrupted      |    451
  2959.       0         5031 Local failure, data corrupted      |    211
  2960.       1,2       5031 Local failure, data corrupted      |    451
  2961.       2         5032 Future file size exceeded          |    451
  2962.       0         5034 Future file size increased         |    211
  2963.       0         5035 Functional unit invalid in         |
  2964.                      processing mode                    |    211
  2965.       2         5035 Functional unit invalid in         |
  2966.                      processing mode                    |    503
  2967.  
  2968.  
  2969.  
  2970. Mindel & Slaski                                                [Page 53]
  2971.  
  2972. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  2973.  
  2974.  
  2975.       0         5036 Contents type inconsistent         |    211
  2976.       2         5036 Contents type inconsistent         |    503
  2977.       0         5037 Contents type simplified           |    211
  2978.       0         5038 Duplicate FADU name                |    211
  2979.       1,2       5039 Damage to select/open regime       |    553
  2980.       1,2       5040 FADU locking not available on file |    450
  2981.       1,2       5041 FADU locked by another user        |    450
  2982.  
  2983. 9.3.  Future Mapping Problem
  2984.  
  2985.    At some point in the future, the FTAM <Responding Presentation
  2986.    Address> parameter may be used for purposes other than the current
  2987.    use of passing the final destination address in the FTAM-Initiated
  2988.    gateway service [NIST86].  If this happens, the destination address
  2989.    will have to be passed in another location, such as in the "@host"
  2990.    portion of the <Initiator Identity>.  Currently, the FTP-FTAM gateway
  2991.    specification permits either mechanism for storage of the ultimate
  2992.    destination address.
  2993.  
  2994. 9.4.  Error Handling
  2995.  
  2996.    The minimal acceptable solution for FTAM-Initiated service errors is
  2997.    to map FTP failures to FTAM "Unrecoverable error" and return the FTP
  2998.    diagnostic string in the FTAM <Further Details> field.  Similarly for
  2999.    FTP-Initiated service errors, the minimal acceptable solution is to
  3000.    return reply code 221, "Service closing control connection, Logged
  3001.    out if appropriate".  While this minimal solution is acceptable, the
  3002.    recommended approach for Gateway developers is to implement the
  3003.    mappings presented in Section 9.1, FTP Reply Codes to FTAM
  3004.    Parameters, and Section 9.2, FTAM Parameters to FTP Reply Codes.
  3005.  
  3006. 10.  Implementation and Configuration Guidelines
  3007.  
  3008.    The intent of this specification is to specify the required
  3009.    characteristics and functions of an FTP-FTAM gateway.  The specific
  3010.    approach taken to realize these specifications in an operational
  3011.    gateway are left to the discretion of the implementor.  We do take
  3012.    the liberty, however, of suggesting several ideas concerning the
  3013.    configuration and implementation of such gateways.
  3014.  
  3015. 10.1.  Robustness
  3016.  
  3017.    The gateway should be robust enough to handle situations where a
  3018.    subset of the FTP and/or FTAM protocols are implemented on a host.
  3019.  
  3020.    The gateway should support multiple concurrent FTP and FTAM
  3021.    connections.
  3022.  
  3023.  
  3024.  
  3025.  
  3026. Mindel & Slaski                                                [Page 54]
  3027.  
  3028. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  3029.  
  3030.  
  3031.    These are requirements for gateway implementations.
  3032.  
  3033. 10.2.  Well-Known TCP/IP Port
  3034.  
  3035.    It is recommended that the FTP-Initiated gateway process listen on
  3036.    TCP/IP port 21, the well-known port for FTP listener processes.  As
  3037.    the gateway computer is primarily intended to provide gateway
  3038.    services,  use of this port will alleviate the need for gateway users
  3039.    to specify the desired port when they connect to the gateway.  The
  3040.    standard FTP server listener process can then be moved to another
  3041.    port that is known to those users (e.g., System Administrators)
  3042.    requiring FTP-to-FTP access to the gateway computer.
  3043.  
  3044. 10.3.  Gateway Listener Processes
  3045.  
  3046.    To simplify the administrative overhead on the gateway computer
  3047.    system, it is recommended that the FTP-Initiated service and FTAM-
  3048.    Initiated gateway listener processes be merged into a single
  3049.    executable module.  This single daemon will act as the one and only
  3050.    gateway listener processes.  As connections were established with
  3051.    hosts, other processes would be created.
  3052.  
  3053. 10.4.  Implementation Testing
  3054.  
  3055.    To assist in the development and evaluation of FTP-FTAM gateway
  3056.    prototypes, NIST has developed a test system to evaluate a gateway's
  3057.    conformance to the protocol standards [NIST88].
  3058.  
  3059. 10.5.  POSIX File Naming and Organization
  3060.  
  3061.    The OSI profiles do not define a standard manner for an FTAM
  3062.    Responder to return file names.
  3063.  
  3064.    To avoid unnecessary complexity, proprietary file systems are not
  3065.    addressed in these mappings.  Gateway support for POSIX file naming
  3066.    and organization conventions is required; i.e., files are assumed to
  3067.    be organized in a hierarchical structure in which all of the non-
  3068.    terminal nodes are directories and all of the terminal nodes are any
  3069.    other type of file.
  3070.  
  3071. 11.  Security Considerations
  3072.  
  3073.    The gateway system may place the burden of authentication on the
  3074.    destination system.  However, the gateway must accommodate the
  3075.    passing through of all authentication parameters.  The authentication
  3076.    parameters of each protocol are applied at the destination and no
  3077.    additional parameters are needed for authentication at the gateway.
  3078.    As such, no gateway password file is required to support gateway
  3079.  
  3080.  
  3081.  
  3082. Mindel & Slaski                                                [Page 55]
  3083.  
  3084. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  3085.  
  3086.  
  3087.    functions.
  3088.  
  3089.    It is anticipated that the requirement for a strong authentication
  3090.    mechanism will soon replace the most currently used, userid and
  3091.    password mechanism.  The U.S. National Security Agency (NSA) has
  3092.    already prototyped and has plans field a Message Secure Protocol
  3093.    (MSP) as part of the Defense Message System (DMS) Program which will
  3094.    soon become the Department of Defense (DoD) mandatory messaging
  3095.    system.  MSP utilizes a public key encryption-like mechanism which
  3096.    will be used to authenticate users and allow signed operations.  The
  3097.    current philosophy is to use this same mechanism for all
  3098.    authentication and access control situations, such as logging onto
  3099.    remote hosts or gateways.  Detailed specifications for Pre-MSP, used
  3100.    in the unclassified though sensitive arena, are scheduled to be
  3101.    published in the first quarter of 1993.  The requirement for gateways
  3102.    to process PMSP and MSP strong authentication mechanisms will be part
  3103.    of all future DoD procurements.
  3104.  
  3105. 12.  References
  3106.  
  3107.    [ISO8571-1]  Information processing systems - Open Systems
  3108.                 Interconnection - File Transfer, Access and
  3109.                 Management, Part 1: General Introduction, International
  3110.                 Standards Organization for Standards, First Edition,
  3111.                 October 1988.
  3112.  
  3113.    [ISO8571-2]  Information processing systems - Open Systems
  3114.                 Interconnection - File Transfer, Access and Management,
  3115.                 Part 2: Virtual Filestore Definition, International
  3116.                 Standards Organization for Standards, First Edition,
  3117.                 October 1988.
  3118.  
  3119.    [ISO8571-3]  Information processing systems - Open Systems
  3120.                 Interconnection - File Transfer, Access and Management,
  3121.                 Part 3: File Service Definition, International Standards
  3122.                 Organization for Standards, First Edition, October 1988.
  3123.  
  3124.    [ISO8571-4]  Information processing systems - Open Systems
  3125.                 Interconnection - File Transfer, Access and Management,
  3126.                 Part 4: File Protocol Specification, International
  3127.                 Standards Organization for Standards, First Edition,
  3128.                 October 1988.
  3129.  
  3130.    [ISO8571-5]  Information processing systems - Open Systems
  3131.                 Interconnection - File Transfer, Access and Management,
  3132.                 Part 5: Protocol Implementation Conformance Statement,
  3133.                 International Standards Organization for Standards,
  3134.                 First Edition.
  3135.  
  3136.  
  3137.  
  3138. Mindel & Slaski                                                [Page 56]
  3139.  
  3140. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  3141.  
  3142.  
  3143.    [KILLE92]  Hardcastle-Kille, S., "Using the OSI Directory to achieve
  3144.               User Friendly Naming", OSI-DS 24 (v1.1), October 1992.
  3145.  
  3146.    [MITRE87]  Scott, J., "An FTP/FTAM Application Bridge, An FTAM/FTAM
  3147.               (MTR-87W00186)", The MITRE Corporation, July 1987.
  3148.  
  3149.    [NETWRX90a]  Mindel, J., "Gateway Technical Specification" Open
  3150.                 Networks, Inc. (formerly NetWorks One), 28 February 1990.
  3151.  
  3152.    [NETWRX90b]  Mindel, J., "FTP Gateway User's Guide", Open
  3153.                 Networks, Inc. (formerly NetWorks One), 28 February 1990.
  3154.  
  3155.    [NIST86]  Wallace, M, et. al., "A Gateway Architecture Between FTP
  3156.              and FTAM (ICST/SNA86-6)", National Institute of Standards
  3157.              and Technology, U.S. Department of Commerce, July 1986.
  3158.  
  3159.    [NIST88]  A Test System for Implementations of FTAM/FTP Gateways:
  3160.              Final Report Part 1, National Institute of Standards and
  3161.              Technology, U.S. Chamber of Commerce, October 1988.
  3162.  
  3163.    [NIST91]  CSL Bulletin: File Transfer, Access, and Management,
  3164.              National Institute of Standards and Technology, U.S.
  3165.              Chamber of Commerce, July 1991.
  3166.  
  3167.    [NIST92]  Stable Implementation Agreements for Open Systems
  3168.              Interconnection Protocols: Part 9 - FTAM Phase 2, Output
  3169.              from the March 1992 Open Systems Environment Implementors'
  3170.              Workshop (OIW), March 1992.
  3171.  
  3172.    [RFC959]  Postel, J., and J. Reynolds, "File Transfer  Protocol
  3173.              (FTP), STD 9, RFC 959, USC/Information Sciences Institute,
  3174.              October 1985.
  3175.  
  3176.    [RFC1101] Mockapetris, P., "DNS Encoding of Network Names and other
  3177.              Types",  RFC 1101, USC/Information Sciences Institute,
  3178.              April 1989.
  3179.  
  3180.    [RFC1279] Hardcastle-Kille, S., "X.500 and Domain", RFC 1279,
  3181.              University College London, November 1991.
  3182.  
  3183.    [ROSE90]  Rose, M., "The Open Book: A Practical Perspective on OSI",
  3184.              Prentice-Hall Inc., 1990.
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194. Mindel & Slaski                                                [Page 57]
  3195.  
  3196. RFC 1415             FTP-FTAM Gateway Specification         January 1993
  3197.  
  3198.  
  3199. 13.  Authors' Addresses
  3200.  
  3201.    Joshua L. Mindel
  3202.    Open Networks, Inc.
  3203.    11490 Commerce Park Dr., Suite 205
  3204.    Reston, Virginia 22091  USA
  3205.  
  3206.    Phone:  (703) 648-0013
  3207.    Email: mindel@netwrx1.nw1.com
  3208.  
  3209.  
  3210.    Robert L. Slaski
  3211.    Open Networks, Inc.
  3212.    11490 Commerce Park Dr., Suite 205
  3213.    Reston, Virginia 22091  USA
  3214.  
  3215.    Phone:  (703) 648-0013
  3216.    Email: slaski@netwrx1.nw1.com
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249.  
  3250. Mindel & Slaski                                                [Page 58]
  3251.  
  3252.